OC中instancetype和id的區別

1. 相同點


  • 都可以作為方法的返回類型,省去具體類型,提高代碼的通用性。

2. 不同點


  1. instancetype會自動識別類型告訴編譯器當前的類型,id只能返回未知類型的對象,調用任何方法不會給出錯誤提示。

  2. instancetype只能作為返回值,不能像id那樣作為參數

  3. 對于init方法,id和instancetype是沒有區別的。因為編譯器會把id優化成instancetype。當明確返回的類型就是當前Class時,使用instancetype能避免id帶來的編譯不出的錯誤情況。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 相同點:instanceType和id都是作為方法的返回類型而被使用。 不同點: 1.instancetype可以...
    zero_zql閱讀 518評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,967評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,171評論 6 13
  • volatile關鍵字的作用、原理 在只有雙重檢查鎖,沒有volatile的懶加載單例模式中,由于指令重排序的問題...
    自然之秋閱讀 533評論 0 0