√∆«Wh«˚ - iOS - > ¬ 实用技术 ¬iOS DeveloperiOS 开发

再谈Objective-C新特性

2016-03-03  本文已影响157人  三角君

很早之前总结了一篇Xcode新特性,当时写得很赶,现在看看是在算不上记录!今天正好有同事在咨询我这方面的事情,就花了点时间好好梳理了一遍!

1.png

上述图片可以总结完所有Objective-C的新特性,而且在这些新特性是纯编译器的语法支持(llvm 7.0),没有借助任何 objc runtime 的升级,也就是说,这个新语法在 Xcode 7 上可以使用且完全向下兼容(更低的 iOS 版本)。

将要说明一下:
第3行:NS_ASSUME_NONNULL_BEGIN声明包在该宏里面的对象默认加 nonnull 修饰符
第36行:3行声明结束

第6行:可以对property指定nonnull

第15行:null_resettable可以表示property setter nullable

第17行:表示数组每个元素为 XPHouse类型 或 XPHouse子类(__kindof)

第19行:NS_DESIGNATED_INITIALIZER表示默认构造器、instancetype

第25行:__covariant表示协变性,子类型可以强转到父类型(里氏替换原则);还有个__contravariant表示逆变性,父类型可以强转到子类型(没有表达出来);T表示泛型

第32行:__nullable指定参数可能为null

上一篇 下一篇

猜你喜欢

热点阅读