有人可以详细说明为什么在iOS 9中引入了nonnull
吗?
例如,NSArray
方法+ (instancetype)array;
现在是+ (instancetype nonnull)array;
引用:
https://developer.apple.com/library/prerelease/ios/releasenotes/General/iOS90APIDiffs/frameworks/Foundation.html
这是Objective-C级别的功能吗?这会对现有应用产生什么影响?
最佳答案
他们已经确保无论类型是什么都不为空,现在它都是nonnull
类型。
像以前的NSMutableArray addObject
方法一样
- (void)addObject:(ObjectType)anObject
现在它已更改为
- (void)addObject:(ObjectType nonnull)anObject
因此,这意味着您不能将空对象(
nil
)传递给此方法。同样的情况+ (instancetype nonnull) array
方法将永远不会返回
nil
。引用:https://developer.apple.com/swift/blog/?id=25
关于ios - objective-c 中的非零是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31002033/