** __kindof ** 表示當(dāng)前類或者它的子類
好處: 在調(diào)用的時候很清楚的知道 返回類型
** __kindof ** 書寫格式:
放在類型的前面:
在說__kindof之前先說說 id 和 instanceType
先創(chuàng)建兩個對象類: Person 和 SonPerson繼承Person
在Person類中實現(xiàn)類方法用于初始化
當(dāng)我們指定返回值類型是id的時候就會出現(xiàn)指向不準(zhǔn)確我們可能用了NSString字符串來接收俯渤,調(diào)用了字符串的length方法,但是person沒有這個方法所以就會造成方法找不到錯誤
由于對象是id類型所以編譯器會提供一些不是person類的方法
為了解決這個我們可以指定具體的類型,但是指定了具體類型后控硼,用他的子類去接收的時候就會造成不兼容
為此Apple公司推出來intancetype類型
雖然不會報警告了但是還是不知道類型是什么依然不能好好使用
因此推出了__kindof
完美解決問題
// id 壞處 :
1. 不能在編譯的時候檢測真實的類型
2. 返回值,沒有提示
3. id類型的對象調(diào)用的方法的時候提示的不準(zhǔn)確
// instanceType
會自動識別當(dāng)前的類型
但是還是無法得知用什么類型去接收