我知道一些不同之處,比如垃圾收集和64位支持,但我有一本基於1.x的書,我想知道如果我會浪費時間學習它,然後加緊2.1閱讀後?在Objective-C 2.x之前學習Objective-C 1.x是否值得?
回答
2.0與1.0不是一個非常有用的區別,因爲線條相當模糊。 Dreamlax的答案是正確的,但只適用於語法(即使如此,也有一些漏洞)。
特別是,有語言的語法來考慮和也有ABI;實際的二進制格式要考慮。還有一些功能只能在LLVM中使用。
好消息,雖然和dreamlax說的一樣,但是你通常真的不關心2.0和1.0,不管是從語法上還是從ABI的角度來看。從句法的角度來看,使用你想要的功能並用它來完成。從ABI的角度來看,1.0與2.0在學術上很有趣,但對你的代碼來說是不可見的。大多數細節通常只會成爲框架和大型應用程序作者的問題。大多。
在任何情況下,並把我的頭頂部:
垃圾收集僅在Mac OS X提供平臺(i386和x86_64)。
@property是一個語法Objective-C 2.0功能,適用於所有平臺和編譯器。
塊是一個擴展C,與目標C兼容,並且,由於iOS 4的,可以在所有平臺和編譯器。
塊和C++在LLVM 2.0只支持一個尚未發佈的編譯器,但可以從http://llvm.org/
@synthesize實例變量的只適用於Objective-C 2.0 ABI(非脆弱iVars,就是它基於的)。
@property的自動合成隱含的ivars在LLVM 2.0中,目前作爲實驗性功能。
poseAsClass:
在i386中被棄用並且完全在x86_64中被移除& iOS(即在Objective-C 2中不存在。0 ABI)Objective-C 1.0 ABI暴露類內部結構。 Objective-C 2.0提供了用於獲取和編輯幾乎所有內臟的API(請在任何缺失的文件上提供文件錯誤),從而允許內部將來改變。
儘管x86_64和ARM之間的實現細節差別很大,但「零成本異常」和「Unified C++/Objective-C異常」都只在Objective-C 2.0 ABI中。
我確定我錯過了一些東西。
許多Objective-C程序員在學習版本2之前學會了第一版。你不會浪費時間學習那本書,但是一旦你完成了它並且適應版本1,那麼你可以移動開始學習版本2.如果您必須定位到較舊的Mac OS X系統,瞭解兩個版本之間的差異非常重要。
Objective-C 1.0代碼仍然是有效的Objective-C 2.0代碼。我遇到了一些甚至比Objective-C 2.0更喜歡Objective-C 1.0的程序員。
- 1. 使用AFNetworking 3.X ObjectiveC
- 2. 學習Python之前是否值得學習C/C++?
- 3. 學習OpenGL ES 1.x
- 4. 在的ObjectiveC
- 5. 有興趣學習struts 1.x
- 6. 在的ObjectiveC
- 7. 在的ObjectiveC
- 8. NumberFormatter - ObjectiveC
- 9. 哪一個學習Python 3.x或Python 2.x?
- 10. 在學習JQuery之前學習JavaScript?
- 11. 是否Telerik openaccess ORM值得學習?
- 12. 學習裝配方言是否值得?
- 13. 中的ObjectiveC
- 14. Rails 1.X和2.X之間的主要區別是什麼
- 15. Angular 1.X和2.X之間的區別是什麼
- 16. Struts 1.x vs Struts 2.x
- 17. JSON ObjectiveC - 錯誤
- 18. 什麼是ObjectiveC中的retainCount?
- 19. ObjectiveC分配和init?
- 20. 在Haskell中計算`[1,x^1,x^2,...,x^n]`
- 21. RSpec 1.x到RSpec 2.x(Rails 2.x到Rails 3.x)
- 22. 這是否(x)只是獲得價值?
- 23. C++ x + = 1 x ++和x = x + 1是不是一樣?
- 24. 的ObjectiveC,創建類的
- 25. ObjectiveC隨機數字
- 26. ObjectiveC> TableView和ViewController之間的爭執
- 27. 是否值得從NHibernate 1.2遷移到NHibernate 2.x?
- 28. sqrt(x)和x **(1./2。)之間的比較
- 29. Spark 1.x和2.x中各種sparkcontext之間的區別
- 30. android 1.x和2.x之間的主要區別
太棒了!正是我希望在這裏! :) 是的,我也聽說iPhone不支持所有的2.0功能,而且,至少暫時是我學習Obj-C的主要原因,無論如何都使它更加合適。 – Qcom 2010-08-03 11:02:52
iPhone支持幾乎所有2.0 API和ABI功能保存垃圾回收。 – bbum 2010-08-03 15:49:34