簡介
__kindof是蘋果聲明的一個新特性,它是和Nullability Annotations 以及Generics 一起在xcode7中出現的。本文將對它進行詳細介紹:
使用方法
假如我們聲明瞭如下屬性:
@property (nonatomic, strong) NSArray *viewCollection;
看屬性名我們會認爲它是元素爲UIView的數組,但這只是猜測,它並不能保證這個數組的元素就是UIView,除非通過閱讀完整的代碼來確認。
這種情況下,我們就可以使用泛型和__kindof來解決這個問題。
使用泛型,我們可以這樣聲明這個數組:
@property (nonatomic, strong) NSArray<UIView *> *viewCollection;
這樣我們知道這個數組被指定了元素爲UIView類型。
但是呢,這樣聲明的數組它只能包含UIView類型的元素,如果元素被賦值爲UIWebView或UIButton這樣的子類型,編譯器就會報警告⚠️。
爲了解決這個問題,__kindof就應運而生。
@property (nonatomic, strong) NSArray<__kindof UIView *> *viewCollection;
用這種結構聲明,這個數組就可以包含UIView以及UIView的子類型,例如UIWebView或UIButton。
我們開發人員應該儘可能地去使用OC的新特性。像__kindof就可以幫助我們提高代碼質量和明確代碼意圖,使用泛型和__kindof會使代碼更嚴謹,這對我們的代碼和應用是大有益處滴!!
原文鏈接:https://happyteamlabs.com/blog/how-to-use-__kindof-in-objective-c/