Objective-C(14)Xcode7新特性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C(14)Xcode7新特性相关的知识,希望对你有一定的参考价值。
nullability
nullability特性用来指明指针是否可以为nil,通过这种特性能够更清晰的表达API的意图。
同时编译器在编译时会对代码进行nullability检查,提示必要的警告。
使用时需要添加到NS_ASSUME_NONNULL_BEGIN … NS_ASSUME_NONNULL_END之间
对象指针:nullable nonnull
C指针: __nonnull __nullable __null_unspecified
null_resettable 用于属性中,表示该属性的setter方法可以设置为nil,getter方法不会返回nil
轻量级泛型
轻量是因为这是个纯编译器的语法支持(llvm 7.0),和 Nullability 一样,没有借助任何 objc runtime 的升级,也就是说,这个新语法在 Xcode 7 上可以使用且完全向下兼容(更低的 ios 版本)
主要用在NSArray和NSDictionary容器中
只存放字符串对象的数组对象:
只存数值对象的字典对象:
自定义支持泛型的容器:
@interface Stack <StackType> :NSObject - (void) pushObject:(StackType) obj; - (StackType) popObject; @end
__kindof
如:
__kindof AMPerson * p;
用于表示该指针存储的是AMPerson对象或AMPerson子类的对象
解决了之前使用id类型,可读性不好的问题,并增加了合法性验证
本文出自 “teacherAn” 博客,请务必保留此出处http://annmeng.blog.51cto.com/3321237/1745638
以上是关于Objective-C(14)Xcode7新特性的主要内容,如果未能解决你的问题,请参考以下文章
iOS12 SiriKit新特性 shortcuts(Objective-C版本)
UI 测试 xCode 7.3 - 无法在控制台中打印变量(即“po app”):(无法构建 Objective-C 模块“Bolts”)