iOS 키워드의 nullable, nonnull, nullresettable、_Null_unspecified의 차이

1335 단어
nullable、nonnull、null_resettable、_Null_unspecified 는 iOS 9 입니다.0 새로운 수식 키워드가 등장했다. 그 차이점을 살펴보자.
공통점
1. 코드 규범을 실시하고 개발 소통 비용을 줄일 수 있으며 한눈에 어떻게 값을 부여하는지 알 수 있다.대상 성명에만 사용할 수 있고 기본 데이터 형식을 성명할 수 없습니다. 대상만 nil로 설정할 수 있기 때문입니다
차이점
1.nullable, 속성이 비어 있음을 나타냅니다.
@property (nonatomic, copy, nullable) NSString *name;
@property (nonatomic, copy) NSString *_Nullable name;
@property (nonatomic, copy) NSString *__nullable name;

2.nonnull, 속성이 비워둘 수 없음
사용 방법:
@property (nonatomic, copy, nonnull) NSString *name;
@property (nonatomic, copy) NSString *_Nonnull name;
@property (nonatomic, copy) NSString *__nonnull name;

주의: 애플은 매크로 정의NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END를 가지고 성명 속성을 중간에 놓으면 이 속성들이 모두 비어 있을 수 없음을 나타낼 수 있습니다.
3.null_resettable, 공백을 다시 설정할 수 있음을 표시합니다. set 방법은 공백일 수 있고 get은 공백일 수 없습니다
사용 방법:
@property (nonatomic, copy, null_resettable) NSString *name;

get이나 set 방법을 다시 써야 합니다. 공백 처리를 해야 합니다.
- (NSString*)name{
        if (_name == nil){
                _name = @" ";
        }
        return _name;
}

4._Null_unspecified, 비어 있는지 확인 안 함
사용 방법:
@property (nonatomic, strong) NSString * _Null_unspecified name;

좋은 웹페이지 즐겨찾기