Cocoa和CocoaTouch之间的主要区别是什么?

Tha*_*nks 9 cocoa cocoa-touch

我目前正在学习Objective-C和Cocoa.接下来,我想坚持iPhone编程.当然,我会得到一本书.但我现在已经知道了,Cocoa和Cocoa Touch之间的主要区别是什么.

Nil*_*ect 8

Cocoa和Cocoa touch的核心概念是相似的,因为它有一个视图层次结构和响应者链.但是,UIView架构与CoreAnimation等最新技术紧密相关.

可用的控件类型也会发生变化.

此外,Cocoa touch引入了UIViewControllers的概念,它创建了一个很好的抽象,用于放置与主程序及其拥有的特定视图交互的代码.正如Chuck在评论中指出的,这是在Mac OS X 10.5中的Cocoa中添加的,所以根据你学习Cocoa的方式,你可能会或可能不会意识到它们.

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


Ale*_*lex 6

为了增加其他人所说的内容,Cocoa Touch和Cocoa共享了很多基础.例如,类似的数据类类NSString和类似的集合类NSArray在两个框架中都是相同的.其他课程NSURLConnection基本相同.其他高级框架(例如Core Data)在Cocoa Touch中不存在.

此外,Cocoa Touch是使用Objective-C 2.0开发的.所以UIKit,Cocoa中与AppKit相对应的Cocoa Touch框架,广泛使用了属性.在很多方面,Cocoa Touch比Cocoa更现代.Cocoa Touch也倾向于使用Objective-C @protocol语法而不是旧类别语法来实现Apple称之为"非正式协议"(即某些方法是可选的协议)


Mik*_*e_G -1

据我了解,主要区别之一是 cocoa 有自己的垃圾收集版本(像 .NET 一样的托管内存),但 cocoaTouch 没有。

  • 不再。在 OS X 10.8 (Mountain Lion) 中,Apple 已弃用垃圾回收,同时在两个平台上引入了 ARC。 (2认同)