
Swift
那夜的星空分外清澈
学如逆水行舟,不进则退。
展开
-
《Swift 权威指南》简单纪要
《Swift 权威指南》简单纪要作者:李宁Swift 的作者 Chris 在硕士毕业时提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础。从 OS X 10.9 和 Xcode 5 开始,LLVM+GCC 已经被替换成了 LLVM+CLang 。Swift 虽然本身是静态语言,是一门类型安全的语言,但其吸取了很多编程语言的优点,同时具备了很多动态语言的语法特性和交互方式。...原创 2019-12-29 20:28:07 · 150 阅读 · 0 评论 -
面向协议编程
面向协议编程在使用 Swift 时,可以为结构体和枚举类型声明方法,其使用起来更加方便,对于一些简单模型,或者对象的组合模型,使用结构体更为简便。对于面向对象编程(OOP,Object Oriented Programming)而言,类能够更好的描述模型,并且可以将抽象出的通用属定义在父类中。但是,不管是 Objective-C 还是 Swift 语言,都不支持多继承,但是他们都可以遵循多个...原创 2019-09-10 23:00:19 · 459 阅读 · 0 评论 -
Swift API Notes
Swift API Notes在苹果的官方框架中,有以 .apinotes 为后缀的文件。苹果公司给出了如下说明:notes provide a mechanism by which Objective-C APIs can be annotated with additional semantic information not present within the original Ob...翻译 2019-09-08 21:35:21 · 367 阅读 · 0 评论 -
Alomafire 概述
Alomafire 概述Alomafire 是一个网络请求框架,其同 AFNetworking 框架是同一个创作团队,只是后者是使用 Objective-C 写的,而该框架是用 Swift 写的。框架结构枚举AFErrorHTTPMethodResult结构体AdaptErrorURLEncodingJSONEncodingPropertyListEncodin...原创 2019-09-02 21:58:25 · 1053 阅读 · 0 评论 -
Swift 集合 Set
Swift 集合 SetSet 同 Array 的声明方式很类似,但他是一个无序集合,且内部元素不重复。由于 Set 集合同 Array 的声明十分相似,所以要指出声明的是一个 Set 变量,否则默认就是 Array 变量。var set1: Set<Character> = []var set2 = Set<Character>()var set3: Set =...原创 2019-08-29 22:51:06 · 343 阅读 · 0 评论 -
Swift 集合 Dictionary
Swift 集合 Dictionary从 Swift 中 Dictionary 的声明,可知,其是一个结构体,且保存的是键值对集合,并且作为作为键的类型必须是可哈希的,这使其如同一个哈希表一样可以通过键来快速访问相对应的值。public struct Dictionary<Key, Value> where Key : Hashable { ... }这就意味着所有遵循 Has...原创 2019-08-29 00:13:06 · 584 阅读 · 0 评论 -
Swift 中的集合 Array
集合 Array在创建一个 Array 对象时,会默认为其分配指定的空间存储将要插入的值。随着插入的值的增加,如果空间不够,那么,数组会重新分配内存,并将原内存中的值拷贝到新内存中。并且,新分配的内存的大小是旧内存大小的多倍。这个重新分配内存的操作对性能的消耗虽然会随着分配次数的增加而降低,但是如果能够估计将要保存的变量个数,可以在创建数组时进行指定,从而避免触发内存的重新分配。Array...原创 2019-08-26 21:20:48 · 736 阅读 · 0 评论 -
Swift 函数默认值
Swift 函数默认值在 Swift 中,函数的内部参数标签不会用来区分函数,另外参数是可以指定默认值的。如下函数:var kRootViewController: UIViewController? { return UIApplication.shared.keyWindow?.rootViewController }func alert(_ message: String, _ c...原创 2019-08-21 00:33:04 · 1180 阅读 · 0 评论 -
Swift 基础小结三
Swift 基础小结三在 Swift 中,定义了一个空协议 Error ,可以自定义一个类型并遵循该协议,表示该类型可以用于错误处理。而后,使用 throw 关键字抛出该类型实例表示出现了一个错误。可以将 throws 关键字添加在参数列表后,表示一个函数可以抛出错误。func test() throws -> Int在调用可以抛出错误的函数时,需要使用 try 关键字,表...原创 2019-07-04 16:27:14 · 527 阅读 · 0 评论 -
Swift 基础小结二
Swift 基础小结二不同于 Objective-C 中 nil 表示的是一个指向地址为 0 的指针,且只能用于实例对象,在 Swift 中,其是一个具体的值,表示值缺失,可用于保存任意类型的可选值。当然,其也只能赋值给可选类型。针对可选类型,Swift 中提供了一个运算符 ?? ,提供可选值为空时的默认值。let str: String? = nillet temp: Strin...原创 2019-07-03 10:18:17 · 173 阅读 · 0 评论 -
Swift 基础小结一
Swift 基础小结在 Swift 中使用 var 和 let 分别声明变量和常量,至于类型,则可以通过后面的初始值信息进行推断,或者直接在变量名后进行指定。var str = "string"let num: Int = 0var isOpen: Bool这种不同于 OC 的声明书写格式,是否会觉得有点不习惯呢,但是鉴于其自动推断类型的强大功能,通常我们是可以省略类型说明的,书写...原创 2019-06-26 14:44:28 · 309 阅读 · 0 评论 -
Swift 函数
函数初始化函数在 Swift 的类中,声明的所有非可选择类型的变量都要进行初始化,可以在声明的时候初始化,也可以在初始化函数中进行。如下,定义一个 Person 类:class Person: NSObject { let name:String var age:Int? init(name:String) { self....原创 2019-04-21 21:02:24 · 128 阅读 · 0 评论 -
Swift 可选类型
可选类型在 Swift 中,可选类型用来处理值可能缺失的情况,表示下面两种情况:有值,你可以访问该值没有值在 Swift 中声明变量时,使用 ? 或 ! 来表示声明的变量是可选类型。let name:String?var age:Int!此时,变量 name 和 age 默认都是 nil,表示空。而 ? 和 ! 的区别在于使用前者声明的变量所包含的值时,需要在变量后添加 ! ...原创 2019-04-21 21:01:57 · 167 阅读 · 0 评论