有人可以详细说明为什么在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/

10-11 14:37