簡介
使用方法
假如我們宣告了如下屬性:
@property (nonatomic, strong) nsarray *viewcollection;
看屬性名我們會認為它是元素為uiview的陣列,但這只是猜測,它並不能保證這個陣列的元素就是uiview,除非通過閱讀完整的**來確認。
這種情況下,我們就可以使用泛型和__kindof來解決這個問題。
使用泛型,我們可以這樣宣告這個陣列:
@property (nonatomic, strong) nsarray*viewcollection;
這樣我們知道這個陣列被指定了元素為uiview型別。
但是呢,這樣宣告的陣列它只能包含uiview型別的元素,如果元素被賦值為uiwebview或uibutton這樣的子型別,編譯器就會報警告⚠️。
為了解決這個問題,__kindof就應運而生。
@property (nonatomic, strong) nsarray<__kindof uiview *> *viewcollection;
用這種結構宣告,這個陣列就可以包含uiview以及uiview的子型別,例如uiwebview或uibutton。
我們開發人員應該盡可能地去使用oc的新特性。像__kindof就可以幫助我們提高**質量和明確**意圖,使用泛型和__kindof會使**更嚴謹,這對我們的**和應用是大有益處滴!!
OC中 kindof的用法
簡介 kindof是蘋果宣告的乙個新特性,它是和nullability annotations 以及generics 一起在xcode7中出現的。本文將對它進行詳細介紹 使用方法 假如我們宣告了如下屬性 objc view plain copy property nonatomic,strong n...
OC中NSData的基本用法
nsdata data1 nsdata data 2 將字串轉換成nsdata 使用const關鍵字來將乙個變數變為常量。const修飾的常量也稱為 命名常量 或者 符號常量 const char str hello nsdata data2 nsdata datawithbytes str len...
OC中self a與 a的用法
person.m inte ce person nsobject property nonatomic,copy nsstring name property nonatomic,copy nsstring void changenamevalue nsstring newname and valu...