id 與instancetype的區(qū)別

instancetype的作用,就是使那些非關(guān)聯(lián)返回類型的方法返回所在類的類型!

好處:確定對(duì)象類型幫編譯器更好定位代碼問(wèn)題。

相同點(diǎn):

作為方法的返回類型

不同點(diǎn):

1、instancetype 可以返回和方法所在類相同類型的對(duì)象,id只能返回未知類型的對(duì)象。

2、instancetype只能作為返回值,id可以作為參數(shù).

@interface NSObject

+(id)alloc;

-(id)init;

@end

當(dāng)我們初始化 NSArray時(shí)

NSArray*array = [[NSArray alloc] init];

[NSArray alloc]返回類型屬于關(guān)聯(lián)返回類型,NSArray *

instancetype

假如一個(gè)不是關(guān)聯(lián)返回類型的方法

@interface NSArray

+(id)constructAnArray;

@end

當(dāng)我們初始化的時(shí)候

[NSArray constructAnArray]

得到返回類型和方法聲明的返回類型一樣,是id

如果使用 instancetype 作為返回類型

@interface NSArray

+(instancetype)constructAnArray;

@end

同樣方式初始化

[NSArray constructAnArray]

得到的返回類型和方法所在類型相同,是 NSArray *

本文轉(zhuǎn)載自?https://www.cnblogs.com/heri/p/4583592.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容