nonnull과nullable 분석
nonnull과nullable 분석
Swift의 optional과non-optional에 대응하기 위해 Xcode6.3 새로운 기능 출시
nullable
및 nonnull
간단하게 말하면nullable는 대상이 NULL이나nil일 수 있음을 표시하고,nonnull은 대상이 비어있으면 안 되며, 상기 규칙을 따르지 않을 때 컴파일러가 경고합니다.다음은 이 두 물건의 용법을 간단하게 시범해 보겠습니다!
성명 속성에는 두 가지 문법이 있다.
제1종 서법
@property (nonatomic, copy, nullalbe) NSString *name;
@property (nonatomic, strong, nonnull) UITableView *tableView;
두 번째 쓰기
@property (nonatomic, copy) NSString * __nullabel name;
@property (nonatomic, strong) UITableView * __nonnull tableView;
개인 추천 첫 번째 작법은 간단명료하다.
성명 방법의 매개 변수도 두 가지 쓰기 방법이 있다
첫 번째 쓰기 방법:
- (instancetype)initWithName:(nonnull NSString *)name;
- (instancetype)initWithName:(nullable NSString *)name;
두 번째 쓰기 방법:
- (instancetype)initWithName:(_Nonnull NSString *)name;
- (instancetype)initWithName:(_Nullable NSString *)name;
물론 매개 변수마다 지정이 필요하다면nullable 또는nonnull, 너무 귀찮지 않아요!다행히도 애플은 우리에게 매크로 정의 한 쌍을 제공했다.
NS_ASSUME_NONNULL_BEGIN
와 NS_ASSUME_NONNULL_END
기본 사용법은 다음과 같습니다.NS_ASSUME_NONNULL_BEGIN
@interface DemoVC_1 : UIViewController
// nullable
@property (nonatomic, copy, nullable) NSString *name;
//NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END , ID nonnull
- (instancetype)initWithID:(NSString *)ID;
@end
NS_ASSUME_NONNULL_END
총결산
사실 아주 오래 전에 다른 사람이 이 두 개의 작은 장난감을 사용하는 것을 보았는데, 게으르기 때문에 자세히 연구하지 못해서 줄곧 이해하지 못했는데, 오늘 또 보니 어색한 표정이다.우수한 개발자는 항상 기술의 최첨단을 따르고 변화를 포옹하며 새로운 것을 받아들인다. 자신이 앞으로의 개발에서 직접 실천할 수 있기를 바란다. 화이팅!
블로거 오리지널, 전재 출처를 밝혀 주시면 감사하겠습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.