Swift的确是一个很强大的语言,各种特性使用起来非常简洁强大,但是目前来说,感觉成熟度还是不够,所以商业项目中使用OC来说是比较稳健的行为。看来一下WWDC 2015的 Swift and Objective-C Interoperability session,视频前半部分主要是讲解swift和OC之间的交互的规则,后面则讲到OC的一部分新的语言特性,这几个特性,Apple的开发人员在WWDC上说的那样,对代码的可读性提升非常大,所以从swift中把这个特性引入到OC中,个人感觉也是为后续向swift的迁移提供支撑,最主要的是这些特性在iOS SDK中以及全面采用并且兼容低版本,所以可以在当前工作中引入这些特性。 Properties 使用Properties来代替实例变量有很多优势: - Auto synthesized getters and setters. 使用@property声明的属性能自动生成getter与setter方法。
- Better declaration of intent of a set of methods. 比为属性声明一系列方法代码上要清晰很多。
- Property keywords that express additional information about behavior. Property使用其他的一些关键子可以表达一些实例变量无法表达的信息,比如 assign, weak, atomic等等。
Property方法有一个非常简明的命名规范,getter方法的名称是property的名称,setter方法的名称是在property名称之前添加set前缀(驼峰法)。通过还可以通过getter关键字指定getter的名称。 在声明一个Property的时候,需要记住下面这些不能是properties的: - init method
- copy method, mutableCopy method
- A class factory method
- 初始化一个action并返回一个BOOL结果的方法
- A method that explicitly changes internal state as a side effect of a getter
Enumration Marcos 使用NS_ENUM来定义枚举,使用NS_OPTIONS来定义options。这两个宏可以改善Xcode中的代码补全,明确指出枚举和options的类型和大小。
|