非空值作为 return 方法中的值不起作用?
nonnull value as return value in method doesn't work?
我认为如果我在方法中为 return 值指定 nonnull
属性,并尝试 return nil/null - 应用程序会崩溃,但我看到了应用程序没有崩溃,它成功 returned null。这是预期的行为(可空性只是为了与 Swift 兼容,对 ObjC 代码没有真正的帮助,或者我做错了什么?
我的方法声明 return 使我为 null:
- (nonnull PFObject *)getParseObjFromManagObj:(nonnull NSManagedObject *)managObj;
可空性只是编译器的一个提示。如果您尝试 return a null/nil,它应该用警告标记您的代码,但它不会生成任何运行时代码。
Swift 使用这些标签来判断方法 return 是否是可选的。
nonnull 属性指定一些函数参数应该是 non-null 指针。这是编译器时间检查。
用法示例:
extern void *my_memcpy(void *dest, const void *src, size_t len) __attribute__((nonnull (1, 2)));
我认为如果我在方法中为 return 值指定 nonnull
属性,并尝试 return nil/null - 应用程序会崩溃,但我看到了应用程序没有崩溃,它成功 returned null。这是预期的行为(可空性只是为了与 Swift 兼容,对 ObjC 代码没有真正的帮助,或者我做错了什么?
我的方法声明 return 使我为 null:
- (nonnull PFObject *)getParseObjFromManagObj:(nonnull NSManagedObject *)managObj;
可空性只是编译器的一个提示。如果您尝试 return a null/nil,它应该用警告标记您的代码,但它不会生成任何运行时代码。
Swift 使用这些标签来判断方法 return 是否是可选的。
nonnull 属性指定一些函数参数应该是 non-null 指针。这是编译器时间检查。
用法示例:
extern void *my_memcpy(void *dest, const void *src, size_t len) __attribute__((nonnull (1, 2)));