iOS9關鍵字的簡單實用
nullable表示可以為nil
nonnull表示不可以為nil
以上關鍵字僅僅修飾物件,不修飾基本資料型別。因此可以用在屬性、引數、返回值。
預設情況下不加nullable,setter和getter都可以為nil。
@property (nonatomic, strong, nullable) NSArray *array;
@property (nonatomic, strong) NSArray * __nullable array;
@property (nonatomic, strong) NSArray * _Nullable array;
- (nonnull NSString *)testString:(nonnull NSString *)string;
- (NSString * _Nonnull)testString:(NSString * _Nonnull)string;
- (NSString * __nonnull)testString:(NSString * __nonnull)string;
NS_ASSUME_NONNULL_BEGIN
NS_ASSUME_NONNULL_END
null_resettable
getter不可以為nil
setter可以為nil
如果使用null_resettable必須重寫getter或setter方法,其目的為處理值為空的情況。
@property (nonatomic, strong, null_resettable) UIView *testView;
泛型
使用泛型可以較為容易的獲取到其中的元素,並訪問特有的屬性和方法,一般用於集合,方法呼叫時有效果。
//屬性使用
@property (nonatomic, strong) NSMutableArray<NSString *> *testArrayM;
//在方法中使用
- (NSArray<NSString *> *)testStringArray:(NSArray<NSString *> *)stringArray;
在集合中規定物件的型別,通過集合取出的物件可以當做泛型來使用,並可以直接使用.語法
協變和逆變
__covariant 協變,用於資料強制轉換型別,子類轉變為父類
__contravariant 逆變,用於資料強制轉換型別,父類轉變為子類
__kindof
表示當前類或它的子類
__kindof放在型別前,表示修飾此型別
用於解決id型別無法在返回值中具體體現其型別問題
- (__kindof NSArray *)testStringArray:(NSArray *)stringArray;
相關文章
- UI自動化關鍵字驅動的簡單設計思路UI
- mssql sqlserver updatetext關鍵字應用簡介說明SQLServer
- 關於 IDEA 簡單實用的小功能Idea
- 【C++】requires關鍵字簡介C++UI
- 簡單又實用!一鍵快速生成精美logo!Go
- 簡單實用的客戶關係管理系統(CRM),在設計上力求簡單、實用。
- DM 關鍵字、遮蔽關鍵字
- out關鍵字和ref關鍵字的區別
- 高亮:單關鍵詞、多關鍵詞、多組多關鍵詞,從簡單到複雜實現滿足多方面需求的頁面關鍵詞高亮
- iOS中一種字串關鍵字檢索高亮的簡易實現iOS字串
- let關鍵字和const關鍵字
- final關鍵字和static關鍵字
- kotlin的 by lazy 和 lateinit 關鍵字的應用Kotlin
- PFLD:簡單高效的實用人臉關鍵點檢測演算法演算法
- 關鍵字
- this關鍵字
- JavaFx 關鍵字高亮文字實現Java
- Android 最簡單的自定義數字鍵盤之一Android
- synchronized關鍵字的原理synchronized
- static關鍵字的作用
- Java 的 static 關鍵字Java
- this的HXD“super”關鍵字
- abstract關鍵字 super 關鍵字 類與繼承繼承
- Java volatile關鍵字最全總結:原理剖析與例項講解(簡單易懂)Java
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- volatile 關鍵字
- @Transient關鍵字
- friend關鍵字
- Auto關鍵字
- Swift 關鍵字Swift
- defer關鍵字
- typedef關鍵字
- params關鍵字
- dynamic關鍵字
- 4關鍵字
- [JavaScript] this 關鍵字JavaScript
- Volatile關鍵字
- static關鍵字
- super關鍵字