Cocoa touch 可可和可可酱的主要区别是什么?

Cocoa touch 可可和可可酱的主要区别是什么?,cocoa-touch,cocoa,Cocoa Touch,Cocoa,我目前正在学习Objective-C和Cocoa。接下来,我要坚持iPhone编程。当然,我会为此买本书的。但我现在想知道Cocoa和Cocoa Touch之间的主要区别。据我所知,其中一个主要区别是Cocoa有自己的垃圾收集版本(托管内存,如.NET),但cocoaTouch没有。基本上,您可以使用的只是框架。对于桌面开发,您将使用AppKit;对于iPhone开发,您将使用UIKit。UIkit显然包括多点触控功能等 当您开始iPhone开发时,以下是一个可能会派上用场的常见问题解答: 编

我目前正在学习Objective-C和Cocoa。接下来,我要坚持iPhone编程。当然,我会为此买本书的。但我现在想知道Cocoa和Cocoa Touch之间的主要区别。

据我所知,其中一个主要区别是Cocoa有自己的垃圾收集版本(托管内存,如.NET),但cocoaTouch没有。

基本上,您可以使用的只是框架。对于桌面开发,您将使用AppKit;对于iPhone开发,您将使用UIKit。UIkit显然包括多点触控功能等

当您开始iPhone开发时,以下是一个可能会派上用场的常见问题解答:

编辑:
是的,就像上面提到的帖子一样,尽管Objective-C2.0可用于iPhone开发,但没有GC,Cocoa和Cocoa touch的核心概念是相似的,因为有一个视图层次结构和响应链。然而,UIView体系结构与CoreAnimation等最新技术的联系要紧密得多

可用控件的类型也会更改

此外,Cocoa touch引入了UIViewController的概念,它创建了一个很好的抽象,用于放置与主程序及其拥有的特定视图交互的代码。正如Chuck在评论中指出的那样,这是在MacOSX10.5的Cocoa中添加的,因此根据您学习Cocoa的方式,您可能知道也可能不知道


最后,正如其他人提到的,目前iPhone上不存在垃圾收集。

添加到其他人所说的,大部分的基础是在可可触摸和可可之间共享。例如,

NSString
之类的数据类型类和
NSArray
之类的集合类在两个框架中都是相同的。其他类如
NSURLConnection
基本相同。Cocoa Touch缺少其他高级框架,例如核心数据


此外,Cocoa Touch是用Objective-C2.0开发的。因此,与Cocoa中的AppKit相对应的Cocoa Touch框架UIKit广泛使用了属性。在许多方面,可可触感比可可更现代。可可触控也倾向于使用ObjytoCux>Cuffels>代码>语法,而不是使用旧的类语法来实现苹果所称的“非正式协议”(即,某些方法是可选的协议)

< P>目标C是一种动态编程语言——有点像C++,有点像java。 Cocoa是Mac OS X的应用程序框架


Cocoa Touch是iPhone和iPod Touch的应用程序框架,与Cocoa非常相似。

Cocoa现在有了NSViewController,所以这并不是一个真正的区别。感谢您指出这一点,出于某种原因,我没有注意到这一点(可能是自从iPhone SDK问世以来,我没有做过桌面Cocoa)。作为三年后的更新,垃圾收集在iPhone上永远不存在,甚至在Mac上也不推荐使用。然而,苹果公司已经为iOS和OS X引入了ARC,这两个版本本质上都是最好的(内存管理的性能与垃圾收集的友好性)。CocoaTouch对内存进行了引用计数。Cocoa有一个可选的垃圾收集器,但仅适用于Mac OS X>=10.5,不再适用。在OSX10.8(Mountain Lion)中,苹果已经不赞成垃圾收集,同时在两个平台上都引入了ARC。嗯,我怀疑最初的海报不知道这一点。