id和instancetype的区别
生活随笔
收集整理的這篇文章主要介紹了
id和instancetype的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
id返回不確定類型的對象(也就是任意類型的對象),- (id)arrayWithData;返回的就是不確定類型的對象,如果執行數組的方法, [- (id)arrayWithData objectOfIndex:0]編譯時不會報錯,但運行時會報錯,找不到該方法。
instancetype返回的類型是該類的對象,- (instancetype)arrayWithData;如果執行數組的方法, [- (instancetype)arrayWithData objectOfIndex:0]編譯時不會報錯,運行時也不會報錯。
總結一下,instancetype的作用,就是使那些非關聯返回類型的方法返回所在類的類型!
2、好處
能夠確定對象的類型,能夠幫助編譯器更好的為我們定位代碼書寫問題,比如:
第二行代碼,由于array不屬于關聯返回類型方法,[NSArray?array]返回的是id類型,編譯器不知道id類型的對象是否實現了mediaPlaybackAllowsAirPlay方法,也就不能夠替開發者及時發現錯誤。
轉載于:https://www.cnblogs.com/rankilau/p/4195061.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的id和instancetype的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你必须懂的 T4 模板:深入浅出
- 下一篇: 成龙到底可以有多拼?在十二生肖这部电影中