我只是在爲Mac學習Objective-C/Cocoa編程。我一直在使用的所有教程,書籍,博客,播客等都真的涵蓋了兩者。有沒有一種簡單的方法來分辨哪些是香草Objective-C和哪些來自Cocoa?Objective-C和Cocoa有什麼區別?
回答
Objective-C是語言...它定義了所有的東西,比如定義對象的關鍵字,消息對象的語法,類似的東西。
Cocoa是一個開發框架(它實際上是一個傘形框架,它結合了其他三個框架,Foundation,AppKit和CoreData)。
這些框架(Cocoa)定義了所有可以很好地使用操作系統和與操作系統交互的對象,以及許多函數。例如,可可定義了諸如NSString
和NSObject
之類的東西。 Cocoa目前可以與其他語言綁定一起使用,例如python或ruby,也可以用於Java。所以,如果你使用Cocoa和Java,你仍然會得到一個NSString
對象,但是你可以在Java應用程序中調用和使用它。
沒有鏈接到其中一個Cocoa框架,Objective-C只帶有一個非常基本的Object類作爲預定義的根類。
當然,這很容易 - Objective-C是語言,Cocoa是你用來爲你的Mac App創建的API /庫。
Objective-C是語言本身。
可可,以前稱爲NextStep,是位於Obj-C之上的API和運行庫。任何以NS開頭的(用於NextStep)都是Cocoa的一部分,而不是該語言的一部分。
我一直想知道那個NS前綴的含義是什麼! – 2009-01-12 16:53:32
查看/ usr/include/objc/- 裏面有純粹的Objective-C。其他一切都是可可。你可能會注意到你幾乎從不直接使用任何東西。
但是,實際上它沒有什麼區別。可可是事實上的Objective-C標準庫。 Objective-C在沒有可可的情況下使用的唯一平臺是Portable Object Compiler,我猜可能有三個人仍在使用它。
我認爲現在只有兩個人......一個綠色咖啡杯的人最近已經轉向了C#...... – 2009-01-12 17:07:14
- 1. Xcode,Objective-C和Cocoa有什麼區別?
- 2. Xcode/Cocoa:調試和發佈版本有什麼區別?
- 3. Cocoa和CoreFoundation返回的文件屬性有什麼區別?
- 4. 在Cocoa中,View和Frame有什麼區別?
- 5. Morphic中的Morph和Cocoa中的NSView有什麼區別?
- 6. Cocoa框架和C靜態庫有什麼區別?
- 7. 使用Quartz&C與ObjectiveC加載圖像有什麼區別?
- 8. 有什麼區別`和$(Bash中有什麼區別?
- 9. 有什麼區別? :和||
- 10. &&和||有什麼區別?
- 11. 「/」和「/ *」有什麼區別?
- 12. 有什麼區別:。!和:r!?
- 13. ==和===有什麼區別?
- 14. Appender和〜有什麼區別?
- 15. $ @和$ *有什麼區別?
- 16. is和=有什麼區別?
- 17. #.00和#。##有什麼區別?
- 18. `==`和`is`有什麼區別?
- 19. '=='和'==='有什麼區別?
- 20. /和/#/有什麼區別?
- 21. | 0和~~有什麼區別?
- 22. `&`和`ref`有什麼區別?
- 23. ==和===有什麼區別?
- 24. ==和===有什麼區別?
- 25. `{}`和`[]`有什麼區別?
- 26. JavaScript和=== ===有什麼區別?
- 27. difftime和' - '有什麼區別?
- 28. =和==有什麼區別?
- 29. xtype和別名有什麼區別?
- 30. Mixpanel:識別()和people.identify()有什麼區別?
謝謝!我特別好奇基金會,NSString和NSObject之類的東西 – 2009-01-12 17:08:57