从XCode6.3 beta开始,它引入了Objective-C的可空性,以简化swift和oc之间的互操作性,似乎有四种选择,即nonnull,nullable,null_unspecified和null_resettable。它们都可以应用于属性,参数和返回类型,但是如果你没有指定,那么默认值是什么。我猜是null_unspecified,但我想提前确认。谢谢。
答案 0 :(得分:2)
除非您另行注释,否则所有指针都将被视为null_unspecified
。一旦你开始注释,你就会开始收到关于该课程的警告,直到你注释了所有内容。您可以使用新的nonnull
标记将代码块的默认值更改为#pragma
:
@interface MyObject : NSObject
#pragma clang assume_nonnull begin
// ...
#pragma clang assume_nonnull end
@end
请注意,null_resettable
只能应用于属性,而不能应用于参数或返回类型。其目的是通过分配属性nil
来重置属性 - 来自Apple的示例为tintColor
,如果给出nil
分配,则会返回默认值。