ios - 使用typedef 属性出现Pointer is missing a nullability type specific 的警告
PHPz
PHPz 2017-04-17 17:30:11
0
2
832
  1. 描述你的问题

Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)

警告如上
程序运行正常,全部加上__nonnull 就好了,为什么?

  1. 贴上相关代码

typedef void (^completionHandlerBlock)(NSURL * _Nullable localfile, NSURLResponse * _Nullable response, NSError * _Nullable error);
//NS_ASSUME_NONNULL_BEGIN
@interface DownLoadImages : NSObject

@property (nonatomic, strong) NSURL *imageURL;

- (instancetype)initWithURL:(NSURL *)contentURL;
- (void)startDownloadingImage:(completionHandlerBlock)completionHandler;
@end

.h文件

  1. 贴上相关截图

  2. 已经尝试过哪些方法仍然没解决(附上相关链接)
    //NS_ASSUME_NONNULL_BEGIN

//NS_ASSUME_NONNULL_END
使用这个只能消除属性警告

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
巴扎黑

typedef에는 문제가 되지 않습니다. 정의한 블록에 _Nullable 키워드가 나타나기 때문입니다. 제거하면 경고가 보고되지 않습니다.

으아악

두 가지 해결 방법이 있습니다.

  1. _Nullable 키워드를 삭제하세요. 어쨌든 기본값은 nullable이므로 제거해도 문제가 되지 않습니다.

  2. 부지런히 _Nullable 키워드를 유지한 다음 경고를 보고하는 각 속성과 매개변수에 _Nonnull, _Nullable_Null_unspecified를 추가하세요.
    말씀하신 대로 모든 항목에 __nonnull을 추가하는 것은 안전하지 않습니다. 확인할 시간이 없다면 속성이 null일 가능성이 있는지 여부에 따라 null이 아닌 추가 여부를 선택하는 것이 가장 좋습니다. 하나씩, _Null_unspecified 전체가 아닌 __nonnull 전체를 추가해야 합니다.

Ty80

이것은 xcode6.3 버전에 추가된 새로운 기능입니다. 이 속성을 사용한다는 것은 클래스의 변수와 메소드의 모든 매개변수를 고려하고 이 속성을 설정해야 한다는 의미입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!