再谈Objective-C新特性

作者: 三角君 | 来源:发表于2016-03-03 15:33 被阅读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

相关文章

网友评论

    本文标题:再谈Objective-C新特性

    本文链接:https://www.haomeiwen.com/subject/katokttx.html