处理注释不佳的Objective-C方法?

时间:2015-11-25 03:50:47

标签: objective-c cocoa annotations nsurl objective-c-nullability

自从我使用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

我理解新注释背后的原因,但他们对现有课程的打击或错过,我不太了解他们的好处。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

如果它说_Nonnull,它不能是零。如果它说_Nullable,它可以。否则,至少在默认情况下,您不能以任何方式做出任何假设,IIRC。