1. 相同點
- 都可以作為方法的返回類型,省去具體類型,提高代碼的通用性。
2. 不同點
instancetype會自動識別類型告訴編譯器當前的類型,id只能返回未知類型的對象,調用任何方法不會給出錯誤提示。
instancetype只能作為返回值,不能像id那樣作為參數
對于init方法,id和instancetype是沒有區別的。因為編譯器會把id優化成instancetype。當明確返回的類型就是當前Class時,使用instancetype能避免id帶來的編譯不出的錯誤情況。
instancetype會自動識別類型告訴編譯器當前的類型,id只能返回未知類型的對象,調用任何方法不會給出錯誤提示。
instancetype只能作為返回值,不能像id那樣作為參數
對于init方法,id和instancetype是沒有區別的。因為編譯器會把id優化成instancetype。當明確返回的類型就是當前Class時,使用instancetype能避免id帶來的編譯不出的錯誤情況。