关于 static

本文尝试回答 static 关键字的区别 Objective-C 中 static 修饰的变量存储的位置? OC 全局静态变量和局部静态变量的区别? OC 全局静态变量和全局变量的区别? static 关键字在 OC 和 Swift 中的区别? Swift 中 static 修饰的类属性存储的位置? static 变量和 macho文件的关系? OC 中的 `stati ...

Swift 字符串

官方定义 String 就是一组字符的集合。 和 Objective-C 不同, Swift 中的 String 是值类型,并且我们通过下标去访问字符串某个字符的时候,Swift 中下标的类型是 String.Index,而不是 Int.. 下标为何是 String.Index 类型? String.Index 的定义是「A position of ...

Swift 枚举

说说 Swift 枚举 Swift 枚举的能力 相对于 OC 来说,Swift 枚举提供了更多的能力。从本质上来说 OC 的枚举实际上是整型的别名,只能存储整数。而 Swift 中枚举是独立的类型。 官方文档对 Swift 中枚举的描述是 > 在 Swift 中,枚举类型是一等(first-class)类型。它们采用了很多在传统上只被类(class)所支持的特性,例如计算属性(com ...

Swift 内存模型

最近有兴趣想要看看 Swift 对象的内存布局,所以尝试研究一下这个话题。这篇文章主要是关注结构体和类的内存模型。 MemoryLayout Swift 官方提供了 MemoryLayout 这样的一个类方便我们来分析内存模型,这个类描述了类型的 size, stride 和 alignment > The memory layout of a type, descr ...

iOS开发中JSON-Model转化

iOS 开发中经常遇到的数据类型转换发生在网络请求回来的时候,字符串转成 Foudation Object(比如 Dictionary 或者 Array)然后再转换成我们定义好的 Model 类型,一般来说就是 JSON 转 Model。 Objective-C 时代的解决方案 之前使用 Objective-C 进行开发的时候,OC 并没有提供对 JSON 转化成 Model 很好的支持 ...

Swift 关于初始化方法的 QA

Q: swift 和 OC 初始化(init)方法的区别? Swift 的初始化方法和普通的 swift 方法有什么区别的点吗? init() { desktop = "桌子" } A: 和 OC 的初始化方法相比 1 - 初始化顺序的区别, swift 先初始化自己的成员变量,然后在调用父类的初始化方法,OC 的调用则相反 2 - swift 不需要 retu ...