OC中__kindof的用法

簡介

__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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章