黑马程序员技术交流社区
标题: Objective-C 的现代语法和新特性 [打印本页]
作者: ios小白成长记 时间: 2015-12-3 23:05
标题: Objective-C 的现代语法和新特性
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的类型和大小。
作者: QQ15862772896 时间: 2015-12-4 01:51
赞赞赞
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |