什么是警告的原因"指针缺少可空性类型说明符"?

Sam*_*ikh 6 ios objective-c-nullability

+ (UIColor*) getColorWithHexa(NSString*)hexString;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述:

这是我班上的方法定义.这引起了警告.什么是类似警告的原因以及如何解决这些问题?

我正在返回一个UIColor对象,而该问题与块有关,在注释中给出.

所以,它很有帮助.

Cha*_*har 14

NS_ASSUME_NONNULL_BEGIN/END:

注释Objective-C头文件中的任何指针会导致编译器期望整个文件的注释,从而引发一连串警告.鉴于大多数注释都是非空的,新宏可以帮助简化注释现有类的过程.只需使用NS_ASSUME_NONNULL_BEGIN和..._ END标记标题部分的开头和结尾,然后标记例外.

所以,你只是这样做.

NS_ASSUME_NONNULL_BEGIN
+ (UIColor*) getColorWithHexaCode:(NSString*)hexString;
NS_ASSUME_NONNULL_END
Run Code Online (Sandbox Code Playgroud)

这是在.中定义的

"NSObjCRuntime.h"

#define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
#define NS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")


Cœu*_*œur 7

当某个文件在你使用,也可以你有这样的警告_Nonnull,_Nullable,_Null_unspecified,__nullable,__nonnull,nullablenonnull.如果通过宏添加说明符也可能发生.

要修复警告:

  • 你可以删除所有出现的可空性(不推荐)
  • 你可以假设所有参数和返回值都在_Nonnull使用NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END(推荐)