我只是在为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