nonnull과nullable 분석

1848 단어
title:nonnull과nullable date:2016-11-17 14:59:50 categories:
  • iOS_SHAKALAKA tags:
  • iOS
  • nonnull
  • nullable

  • nonnull과nullable 분석


    Swift의 optional과non-optional에 대응하기 위해 Xcode6.3 새로운 기능 출시nullablenonnull간단하게 말하면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_BEGINNS_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
    

    총결산


    사실 아주 오래 전에 다른 사람이 이 두 개의 작은 장난감을 사용하는 것을 보았는데, 게으르기 때문에 자세히 연구하지 못해서 줄곧 이해하지 못했는데, 오늘 또 보니 어색한 표정이다.우수한 개발자는 항상 기술의 최첨단을 따르고 변화를 포옹하며 새로운 것을 받아들인다. 자신이 앞으로의 개발에서 직접 실천할 수 있기를 바란다. 화이팅!
    블로거 오리지널, 전재 출처를 밝혀 주시면 감사하겠습니다.

    좋은 웹페이지 즐겨찾기