美文网首页
Objective-C中nullable、__nullable、

Objective-C中nullable、__nullable、

作者: Mr姜饼 | 来源:发表于2018-07-31 10:34 被阅读0次

前言

 __nullable 和 __nonnull 。从字面上我们可知, __nullable 表示对象可以是 NULL 或 nil,而__nonnull 表示对象不应该为空。当我们不遵循这一规则时,编译器就会给出警告。在 Xcode 7 中,为了避免与第三方库潜在的冲突,苹果把 __nonnull/__nullable改成 _Nonnull/_Nullable 。再加上苹果同样支持了没有下划线的写法 nonnull/nullable ,于是就造成现在有三种写法这样混乱的局面。但是这三种写法本质上都是互通的,只是放的位置不同,举例如下:

总结:

对于属性、方法返回值、方法参数的修饰,使用:nonnull/nullable;

对于 C 函数的参数、Block 的参数、Block 返回值的修饰,使用:_Nonnull/_Nullable,建议弃用__nonnull/__nullable

example:

@property(copy,nonamatic,nullable)NSString* ID;

- (nullable NSString*)getID;

- (void)setIDS:(nullable NSString*)ID;

- (void)methoeWithBlock:(void(^  _Nullable)()))block;

相关文章

网友评论

      本文标题:Objective-C中nullable、__nullable、

      本文链接:https://www.haomeiwen.com/subject/unycvftx.html