自从我使用 Objective-C 以来已经有一段时间了(而且我是 Swift 的新手),所以请耐心等待。但是,我注意到一些“可空性注释”要么根本没有意义,要么与 Apple 的文档完全矛盾。以下面的NSURL
类方法为例:
+ (instancetype)URLByResolvingBookmarkData:(NSData *)bookmarkData
options:(NSURLBookmarkResolutionOptions)options
relativeToURL:(NSURL *)relativeURL
bookmarkDataIsStale:(BOOL *)isStale
error:(NSError * _Nullable *)error;
您会注意到error
参数中添加了注释,因此应该假设此方法已被注释,对吗?
如果是这种情况,人们还会假设由于relativeToURL
参数没有添加可空性注释,因此它不能为空。
我实际上是否理解 Objective-C 的新可空性注释?
如果是这样,为什么要relativeURL
专门说明文档(粗体格式是我的):
要解析应用范围的书签,请使用nil值。
我理解新注释背后的原因,但是它们在现有类中受到了如此大的影响,以至于我不太了解它们的好处。我错过了什么吗?