Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';Objective-C和Cocoa有什么区别?_Objective C_Cocoa - Fatal编程技术网

什么';Objective-C和Cocoa有什么区别?

什么';Objective-C和Cocoa有什么区别?,objective-c,cocoa,Objective C,Cocoa,我正在学习Mac的Objective-C/Cocoa编程。我用过的所有教程、书籍、博客、播客等都将两者结合起来。有没有一种简单的方法来区分哪些是香草Objective-C,哪些来自Cocoa?当然,这很简单-Objective-C是一种语言,Cocoa是你用来构建Mac应用程序的API/库。Objective-C是语言本身 Cocoa,前身为NextStep,是位于Obj-C之上的API和运行时。任何以NS开头的东西(对于NextStep)都是Cocoa的一部分,而不是语言的一部分。Object

我正在学习Mac的Objective-C/Cocoa编程。我用过的所有教程、书籍、博客、播客等都将两者结合起来。有没有一种简单的方法来区分哪些是香草Objective-C,哪些来自Cocoa?

当然,这很简单-Objective-C是一种语言,Cocoa是你用来构建Mac应用程序的API/库。

Objective-C是语言本身


Cocoa,前身为NextStep,是位于Obj-C之上的API和运行时。任何以NS开头的东西(对于NextStep)都是Cocoa的一部分,而不是语言的一部分。

Objective-C是语言。。。它定义了所有的东西,比如定义对象的关键字、消息传递对象的语法等等

可可是一个开发框架(它实际上是一个伞形框架,它结合了其他三个框架,基金会、AppKIT和CaleDATA)。 这些框架(Cocoa)定义了所有易于使用和与操作系统交互的对象,以及许多函数。例如,Cocoa定义了

NSString
NSObject
等内容。Cocoa目前可用于其他语言绑定,如python或ruby,也可用于Java。因此,如果您将Cocoa与Java一起使用,您仍然会得到一个
NSString
对象,但您会在Java应用程序中调用并使用它


没有链接到任何一个Cocoa框架,Objective-C只附带了一个非常基本的对象类作为预定义的根类。

查看/usr/include/objc/-in中有纯Objective-C。其他一切都是Cocoa。你可能会注意到你几乎从未直接使用过里面的任何东西


然而,在实践中,这几乎没有什么区别。Cocoa是事实上的Objective-C标准库。Objective-C在没有Cocoa的情况下使用的唯一平台是,我猜可能还有三个人在使用它。

我想现在只有两个人。。。一个拿着绿色咖啡杯的家伙最近转到了C#独家…与之相关的长时间讨论,非常有趣:谢谢!我特别好奇基金会、NSString和NSObject