我只是在学习Mac的Objective-C/Cocoa编程.我一直在使用的所有教程,书籍,博客,播客等真正涵盖了两者.有没有一种简单的方法可以判断哪些是香草Objective-C,哪些来自可可?
Objective-C是一种语言......它定义了所有的东西,比如用于定义对象的关键字,消息传递对象的语法,类似的东西.
Cocoa是一个开发框架(它实际上是一个伞形框架,它结合了其他三个框架,Foundation,AppKit和CoreData).
这些框架(Cocoa)定义了所有易于使用和与操作系统交互的对象,以及许多功能.例如,Cocoa定义了像NSString
和的东西NSObject
.Cocoa当前可以与其他语言绑定一起使用,例如python或ruby,并且过去也可以与Java一起使用.因此,如果您使用Cocoa和Java,您仍然会获得一个NSString
对象,但您可以在Java应用程序中调用和使用它.
如果不链接到其中一个Cocoa框架,Objective-C只会附带一个非常基本的Object类作为预定义的根类.
Objective-C是语言本身.
Cocoa,以前的NextStep,是位于Obj-C之上的API和运行时.从NS开始的任何事情(对于NextStep)都是Cocoa的一部分,而不是语言的一部分.
当然,这很容易 - Objective-C是语言,Cocoa是您用来构建Mac App的API /库.