我正在爲頭文件的一部分添加一些空性註釋,並且我希望該塊假定爲非空,但幾乎每個方法之後都發出警告,說我需要添加可空性註釋。這低於NS_ASSUME_NONNULL_END後的空性註釋警告
示例代碼:
NS_ASSUME_NONNULL_BEGIN
- (void)testMethodWithParameter:(NSString *)par otherParameter:(NSString *)otherPar;
NS_ASSUME_NONNULL_END
- (void)methodThatShouldntNeedAnnotationWithText:(NSString *)txt;
//Warning: Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
我是否正確理解這些宏?我認爲它會包含被稱爲在BEGIN/END區塊內被審計的部分,但是外面的所有部分仍然是_Null_unspecified
這是按照預期工作,還是有一些我必須做的工作來完成這項工作我想過的方式?
我不知道這是否是有意還是無意,但我也觀察到了這一點。只要在接口文件中有* any * nullability註釋,就必須在該文件中的所有位置都定義爲可空*。 –
至少從我對這是如何工作的印象來看,似乎'NS_ASSUME_NONNULL_END'在界面中沒有做任何事情。 Apple Swift博客的示例代碼在'@inter'前面顯示'BEGIN',在'@ end'後面顯示'END'(接口)。也許這並不意味着它只是作爲它的一部分在界面中使用。 – NickCE