ios 9.0 이후에 추가된 키워드

1653 단어
iOS 9.0 다음에 새로운 키워드를 추가했습니다. 여기서 복습을 하고 정리를 해서 자신의 코드를 더욱 규범화할 수 있습니다.

공통 키워드:

1. nonnull \ __nonnull :       setter   getter     nil 
    :
@property (nonatomic, strong, nonnull) NSArray *names;
@property (nonatomic, strong) NSArray * __nonnull names;

2. nullable \ __nullable: 이 속성은 setter와getter가 모두nil일 수 있음을 나타냅니다 사용 방법: @property (nonatomic, strong, nullable) NSArray *names; @property (nonatomic, strong) NSArray * __nullable names; 팁: 기본적으로 속성은nullable를 추가하지 않습니다.setter와getter도 모두nil일 수 있습니다.nullable를 추가하면 프로그래머 간의 의사소통에 더 많은 역할을 합니다. (동료에게 어떤 속성이nil일 수도 있음을 알립니다.)

3.null_resettable:setter는nil,getter는nil @property (null_resettable, nonatomic, strong) NSArray *names;

4.NS_ASSUME_NONNULL_BEGIN 및 NSASSUME_NONNULL_END 사이의 모든 속성은 기본적으로 nonnull입니다.

일반:

1.                ,     
   @property (nonatomic, strong) NSMutableArray *names;
   @property (nonatomic, strong) NSMutableDictionary *books; 

2. 사용자 정의 범주 Bag *bag1 = [[Bag alloc] init]; [bag1 get:0]; Bag *bag2 = [[Bag alloc] init]; [bag2 get:0]; 다른 클래스 쓰기: @interface Bag<__contravariant objecttype=""> : NSObject - (void)add:(ObjectType)object; - (ObjectType)get:(int)index; @end

3. __covariant: 작은 유형(범형류의 하위 유형)->큰 유형(범형류의 부 유형)일 경우 보고하지 않습니다⚠️ __contravariant: 큰 유형 (일반 클래스의 부모 유형) - > 작은 유형 (일반 클래스의 하위 유형) 은 보고하지 않습니다.⚠️

__kindof

 1.                  __kindof 
    :              (NSString),          (NSMutableString)      ,         

좋은 웹페이지 즐겨찾기