【麦子学院】Objective-C语言的现代语法与新特性详解.pdfVIP

  • 33
  • 0
  • 约4千字
  • 约 5页
  • 2015-11-10 发布于安徽
  • 举报

【麦子学院】Objective-C语言的现代语法与新特性详解.pdf

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 的话,可能注意

文档评论(0)

1亿VIP精品文档

相关文档