參考博文??: instanceType & id 區別
關聯返回類型(related result types)
根據Cocoa的命名規則,滿足下述規則的方法:
- 類方法中,以 alloc 或 new 開頭
- 實例方法中,以 autorelease ,init ,retain 或 self 開頭
會返回一個方法所在類類型的對象,這些方法就被稱為是關聯返回類型的方法。換句話說,這些方法的返回結果以方法所在的類為類型
instancetype和id的異同
- 相同點
都可以作為方法的返回類型 - 不同點
- instancetype可以返回和方法所在類相同類型的對象,id只能返回未知類型對象
- instancetype只能作為返回值,不能像 id 那樣作為參數
總結:
instancetype 的作用,就是使那些非關聯返回類型的方法返回所在類的類型!