ede*_*y05 23 objective-c swift objective-c-nullability
我已经养成了一个很好的习惯,即为NSNotification
名字之类的东西声明和使用常量字符串.我声明他们是这样的:
extern NSString * const ABCAwesomeThingHappenedNotification;
Run Code Online (Sandbox Code Playgroud)
随着引进的Xcode 6.3和1.2雨燕的,我要回去,使用新雨燕与互操作和审计Objective-C类nonnull
,nullable
和null_unspecified
预选赛.
将限定符添加到也具有外部可见静态字符串的标头时,我收到以下警告:
警告:指针缺少可为空类型说明符(__nonnull或__nullable)
嗯.那令人困惑/有趣.有人可以解释这条消息背后的原因吗?ABCAwesomeThingHappenedNotification
在Swift中使用时,它从不暗示它是可选的String或隐式解包的String.
Jos*_* B. 30
我同意不应该要求这个说明符,但这里是语法
extern NSString * const MyConstant;
extern NSString * __nonnull const MyConstant;
Run Code Online (Sandbox Code Playgroud)
在您的实现中,您可以定义:
NSString * const ABCAwesomeThingHappenedNotification = @"ABCAwesomeThingHappenedNotification";
Run Code Online (Sandbox Code Playgroud)
在这种情况下指针是清楚的nonnull
.但是,这也是有效的:
NSString * const ABCAwesomeThingHappenedNotification = nil;
Run Code Online (Sandbox Code Playgroud)
必须考虑nullable
因为指针始终是空指针.
(显式初始化nil
为冗余,因为如果没有提供初始值,则会隐式发生,但会澄清此示例.)
归档时间: |
|
查看次数: |
4010 次 |
最近记录: |