iOS两个关于对象的关键字
2016-03-10 23:23
232 查看
标签:
swift新特性(__nullable和__nonnull)
最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生的一个新特性,就很认真的研究了一下。
在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!。而在Objective-C中则没有这一区分,view即可表示这个对象是optional,也可表示是non-optioanl。
这样就会造成一个问题:在Swift与Objective-C混编时,Swift编译器并不知道一个Objective-C对象到底是optional还是non-optional,因此这种情况下编译器会隐式地将Objective-C的对象当成是non-optional。
为了解决这个问题,苹果在Xcode 6.3引入了一个Objective-C的新特性:nullability annotations。
这一新特性的核心是两个新的类型注释:__nullable和__nonnull。从字面上我们可以猜到,__nullable表示对象可以是NULL或nil,而__nonnull表示对象不应该为空。当我们不遵循这一规则时,编译器就会给出警告。
swift新特性(__nullable和__nonnull)
最近在看老师写代码的时候经常遇到两个陌生的关键字,但是当我在我的电脑上敲得时候就是敲不出,后来才知道这是为了swift与OC混编的时候产生的一个新特性,就很认真的研究了一下。
在swift中,可以使用!和?来表示一个对象是optional的还是non-optional,如view?和view!。而在Objective-C中则没有这一区分,view即可表示这个对象是optional,也可表示是non-optioanl。
这样就会造成一个问题:在Swift与Objective-C混编时,Swift编译器并不知道一个Objective-C对象到底是optional还是non-optional,因此这种情况下编译器会隐式地将Objective-C的对象当成是non-optional。
为了解决这个问题,苹果在Xcode 6.3引入了一个Objective-C的新特性:nullability annotations。
这一新特性的核心是两个新的类型注释:__nullable和__nonnull。从字面上我们可以猜到,__nullable表示对象可以是NULL或nil,而__nonnull表示对象不应该为空。当我们不遵循这一规则时,编译器就会给出警告。
相关文章推荐
- iOS----------SDWebimage源码解析(5)
- iOS自定义进度条
- iOS设计中字符串NSString与int及float之间的转换
- iOS毛玻璃效果(不需要任何第三方了)
- iOS 9 人机界面指南(五):图标与图形设计(附指南全文pdf下载)
- iOS的socket开发基础
- iOS 自定义进度条
- IOS应用中的数据存储
- iOS进阶——coreData的使用与学习
- iOS常用的设计模式
- iOS_SN_地图的使用(3)
- iOS项目实践之时光电影(二)
- iOS_SN_地图的使用(2)
- ios json
- 维护IOS项目时遇到的一些问题
- iOS开发之保存照片到自己创建的相簿
- iOS_SN_百度地图基本使用(1)
- ios 字典转模型
- IOS-XMPP
- IOS NSTimer和CADisplayLink的用法