Xcode 6.3中有一项新特性,`nullability`标记,这为 OC 提供了类似 Swift 中的 Optional 的类型 为了让更多开发者从 OC 向 Swift 过渡,OC 和 Swift 混编已经变得尤为重要,就像是OC通向Swift的一座桥梁, 通过引入泛型使得 OC 和 Swift 之间更加安全清楚的理解和共享包含特定元素的集合
The Core: _Nullable and _Nonnull
关于 _Nullable 和 _Nonnull ,官方文档有这么一句话
At the core of this feature we have two new type annotations: _Nullable and _Nonnull.
As you might expect, a _Nullable pointer may have a NULL or nil value, while a _Nonnull one should not.
The compiler will tell you if you try to break the rules.
大概意思就是,我们又添加了两种类型,_Nullable
可以为NULL
或者nil
,反之 _Nonnull
绝对不能为空,否则编译器就会出现警告
@interface AAPLList : NSObject <NSCoding, NSCopying>
// ...
- (AAPLListItem * _Nullable)itemWithName:(NSString * _Nonnull)name;
@property (copy, readonly) NSArray * _Nonnull allItems;
//