用于本地使用的可空注释

时间:2017-04-05 16:20:13

标签: ios objective-c

我有类方法的代码,让我们说:

+ (NSString*) build:(NSString*) id domain:(NSString*) domain {
     return [NSString stringWithFormat:@"https://%@/%@", domain, id];
}

我想将其添加到nullable注释中:

+ (NSString*) build:(nonnull NSString*) id domain:(nonnull NSString*) domain {
     return [NSString stringWithFormat:@"https://%@/%@", domain, id];
}

我知道我们使用Swift API将注册人员转换为Optional的注释,但我发现私人使用它非常有帮助。

例如,如果我使用nil调用此方法,请执行以下操作:

[Helper build:id  domain:nil ]

会抛出警告

  

Null传递给需要非nill的被调用者......

因此,每个开发人员都知道此方法会收到不可为空的值

  • 有任何限制吗?
  • 为什么我找不到在代码中广泛使用这些注释的开源代码?

我的应用程序应该在iOS 7 +上运行

1 个答案:

答案 0 :(得分:0)

你提出了一个很好的观点。我还没有真正看到很多使用注释的Obj-C代码。但我觉得非常有帮助,尤其是在处理同时包含SwiftObj-C的项目时。我发现你应该结帐真的有用的link!它位于官方Swift博客上。关于你的限制问题我看到的一件事是:

  

此功能首先在Xcode 6.3中发布,关键字为__nullable和__nonnull。由于与第三方库的潜在冲突,我们已将Xcode 7中的它们更改为您在此处看到的_Nullable和_Nonnull。但是,为了与Xcode 6.3兼容,我们预定义了宏__nullable和__nonnull以扩展为新名称。

希望这会有所帮助,我也会在此寻找更多的投入!