id和instancetype的区别
生活随笔
收集整理的這篇文章主要介紹了
id和instancetype的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
id返回不確定類型的對(duì)象(也就是任意類型的對(duì)象),- (id)arrayWithData;返回的就是不確定類型的對(duì)象,如果執(zhí)行數(shù)組的方法, [- (id)arrayWithData objectOfIndex:0]編譯時(shí)不會(huì)報(bào)錯(cuò),但運(yùn)行時(shí)會(huì)報(bào)錯(cuò),找不到該方法。
instancetype返回的類型是該類的對(duì)象,- (instancetype)arrayWithData;如果執(zhí)行數(shù)組的方法, [- (instancetype)arrayWithData objectOfIndex:0]編譯時(shí)不會(huì)報(bào)錯(cuò),運(yùn)行時(shí)也不會(huì)報(bào)錯(cuò)。
總結(jié)一下,instancetype的作用,就是使那些非關(guān)聯(lián)返回類型的方法返回所在類的類型!
2、好處
能夠確定對(duì)象的類型,能夠幫助編譯器更好的為我們定位代碼書寫問題,比如:
第二行代碼,由于array不屬于關(guān)聯(lián)返回類型方法,[NSArray?array]返回的是id類型,編譯器不知道id類型的對(duì)象是否實(shí)現(xiàn)了mediaPlaybackAllowsAirPlay方法,也就不能夠替開發(fā)者及時(shí)發(fā)現(xiàn)錯(cuò)誤。
轉(zhuǎn)載于:https://www.cnblogs.com/rankilau/p/4195061.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的id和instancetype的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你必须懂的 T4 模板:深入浅出
- 下一篇: 岁月悄然前行,没有停留的痕迹