iOS 키워드의 nullable, nonnull, nullresettable、_Null_unspecified의 차이
공통점
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_BEGIN
와 NS_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;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.