instancetype是clang3.5開始,clang提供的一個關鍵字,表示某個方法返回的未知類型的Objective-C對象。
創(chuàng)新互聯(lián)是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務器,站群服務器,達州電信機房,海外高防服務器,服務器機柜,動態(tài)撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。
instancetype只能作為返回值,不能像id那樣作為參數(shù)。
使用 instancetype 返回的一定是調(diào)用該方法的實例,而id則不一定,因為id是作為一個范型來使用的
相同點:都可以作為方法的返回類型
①instancetype可以返回和方法所在類相同類型的對象,id只能返回未知類型的對象;
②instancetype只能作為返回值,不能像id那樣作為參數(shù)
使用instancetype有三點好處:
1、明確性。代碼只做你讓它做的事,而不是其他。
2、程式化。你會養(yǎng)成好習慣,這些習慣在某些時候會很有用,而且肯定有用武之地。
3、一致性。讓代碼可讀性更好。
用instancetype代替init作為返回值的確沒有技術上的好處。但這是因為編譯器自動將id轉(zhuǎn)化成了instancetype。你以為init返回的值類型是id,其實編譯器返回了instancetype。
在寫一條返回id的消息前,問自己:這個類返回實例嗎?如果返回,用instancetype。
肯定有需要返回id的時候,但你用instancetype的頻率應該會更高
網(wǎng)站欄目:iOSinstancetype與id的比較
本文URL:http://chinadenli.net/article48/jiochp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、用戶體驗、建站公司、響應式網(wǎng)站、品牌網(wǎng)站設計、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)