2009-12-16 49 views

回答

6

iPhone操作系統在Leopard發佈之前不久推出,它從一開始就一直是Objective-C 2.0。除了缺乏iPhone上的垃圾收集之外,關鍵的區別在於,iPhone上的Objective-C運行時永遠是現代運行時,而不是32位Mac應用程序的傳統運行時。 (See this Apple doc)。這種區別的重要結果之一是實例變量是非脆弱的(意思是當你改變一個類的實例變量時,你不必重新編譯它的子類),它可以合成屬性的變量。

+0

有趣。不知道傳統運行時與現代運行時間位。自從Leopard開始,我只開發了Mac,並且只針對Leopard或更高版本,所以我不知道其中的差別。謝謝。 – 2009-12-16 04:46:11

+0

沒問題,我只知道去年的優良差異。如果你不需要支持pre-Leopard,那確實很幸運。不過,瞭解32位應用仍然使用Legacy運行時是很好的。 – 2009-12-16 05:42:55