6
+ (UIColor*) getColorWithHexa(NSString*)hexString;

在此处输入图像描述

这是我课堂上的一个方法定义。它正在引起警告。出现类似警告的原因是什么,如何解决?

我正在返回一个 UIColor 对象,而该问题与评论中给出的块有关。

所以,这很有帮助。

4

2 回答 2

16

NS_ASSUME_NONNULL_BEGIN/END:

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

所以,你只需要做。

NS_ASSUME_NONNULL_BEGIN
+ (UIColor*) getColorWithHexaCode:(NSString*)hexString;
NS_ASSUME_NONNULL_END

这是定义在

“NSObjCRuntime.h”

#define NS_ASSUME_NONNULL_BEGIN _Pragma("clang 假设_nonnull 开始")
#define NS_ASSUME_NONNULL_END _Pragma("clang 假设_nonnull 结束")

于 2016-02-24T11:45:41.377 回答
7

当您在文件的某处使用_Nonnull_Nullable_Null_unspecified__nullable、或时__nonnull,您会收到此警告。如果说明符是通过宏添加的,也可能发生。nullablenonnull

要修复警告:

  • 您可以删除所有出现的可空性(不推荐)
  • 您可以假设所有参数和返回值都_Nonnull使用NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END(推荐)
于 2016-02-24T12:12:00.653 回答