- 33
- 0
- 约4千字
- 约 5页
- 2015-11-10 发布于安徽
- 举报
IT 在线教育平台———麦子学院:
【麦子学院】Objective-C 语言的现代语法和新特性详解
在 iOS 应用开发中,虽然 Swift 已经发展到了2.0 版本,是一款很强大的基础语言,各
种特性使用起来也很方便简洁,但是毕竟是一门新语言,现在大部分的 iOS 商业项目中还
是使用的稳定性比较好的 Objective-C 语言。本文小编为大家分享的就是 Objective-C 的一
些现代语法和新特性,一起来看下吧。
instancetype
在 instancetype 有效的情况下,应该尽量去使用 instancetype。至于什么是合适的时候,
可以参考 stack overflow 上面所说:“Use instancetype whenever its appropriate, which
is whenever a class returns an instance of that same class.”
Properties
使用 Properties 来代替实例变量有很多优势:
1、Auto synthesized getters and setters. 使用@property 声明的属性能自动生成 getter
与 setter 方法。
2、Better declaration of intent of a set of methods. 比为属性声明一系列方法代码上要清
晰很多。
3、Property keywords that express additional information about behavior. Property 使用
其他的一些关键子可以表达一些实例变量无法表达的信息,比如 assign, weak, atomic 等
等。
Property 方法有一个非常简明的命名规范,getter 方法的名称是 property 的名称,
setter 方法的名称是在 property 名称之前添加 set 前缀(驼峰法)。通过还可以通过getter
关键字指定 getter 的名称。
在声明一个 Property 的时候,需要清楚下面这些不能是 properties 的:
1 )init method
2 )copy method, mutableCopy method
3 )A class factory method
4 )初始化一个action 并返回一个 BOOL 结果的方法
5 )A method that explicitly changes internal state as a side effect of a getter
IT 在线教育平台———麦子学院:
Enumration Marcos
使用 NS_ENUM 来定义枚举,使用 NS_OPTIONS 来定义 options。这两个宏可以改善
Xcode 中的代码补全,明确指出枚举和options 的类型和大小。
Object Initialization
可能是为了兼容 swift 语言,OC 中添加了 designated initializer 初始化方法和
convenience initializers 初始化方法:
1、designated initializer : 负责调用 superclass 的初始化方法以及初始化自己的实例变量
的初始化方法
2、convenience initializers : 非 designated initializer 都被称为 designated initializer。这些
initializer 内部实现一般都是调用另外一个initializer ,然而最终一系列链式调用之后,最终
都会调用某一个 designated initializer 方法来进行初始化行为。
实现一个 designated initializer 方法很简单,通过 NS_DESIGNATED_INITIALIZER 宏
即可实现,但是使用designated initializer 的时候,会有一些限制规则,跟swift 中的这些
规则非常类似。
Objective-C 新特性
Nullability
Nullability 特性用来指明 Objective-C/C 指针是否可以为 nil。显然,使用这个特性更能
清晰表达 API 的意图,同时可以提升编译器的 static checking ,还有一点就可以提高这些
API 在 swift 中的可用性。如果使用Xcode 7 的话,可能注意
您可能关注的文档
最近下载
- 河北广谋新材料科技有限公司年产600万平方米复合革及隔音布、400万平方米新型复合网项目环境影响报告表.docx VIP
- 部编版语文五年级下册第七单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第五单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第四单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第三单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第二单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第一单元教材解读大单元集体备课.pptx VIP
- 车工 (数控车床)理论知识考核要素细目表四级.pdf VIP
- 本科课程《基础护理学》教案,第十二章给药.doc VIP
原创力文档

文档评论(0)