【发布时间】:2015-11-25 03:50:47
【问题描述】:
我已经有一段时间没有使用 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 值。
我理解新注释背后的原因,但它们在现有类中的影响如此之大,以至于我不太了解它们的优点。我错过了什么吗?
【问题讨论】:
-
你的情况很好。向 Apple 提交错误。我认为他们的很多注释都是通过自动化工具完成的。您似乎发现了一个未妥善处理的案例。
标签: objective-c cocoa annotations nsurl objective-c-nullability