我目前正在学习Objective-C和Cocoa.接下来,我想坚持iPhone编程.当然,我会得到一本书.但我现在已经知道了,Cocoa和Cocoa Touch之间的主要区别是什么.
Cocoa和Cocoa touch的核心概念是相似的,因为它有一个视图层次结构和响应者链.但是,UIView架构与CoreAnimation等最新技术紧密相关.
可用的控件类型也会发生变化.
此外,Cocoa touch引入了UIViewControllers的概念,它创建了一个很好的抽象,用于放置与主程序及其拥有的特定视图交互的代码.正如Chuck在评论中指出的,这是在Mac OS X 10.5中的Cocoa中添加的,所以根据你学习Cocoa的方式,你可能会或可能不会意识到它们.
最后,正如其他人所提到的,目前iPhone上不存在垃圾收集.
为了增加其他人所说的内容,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称之为"非正式协议"(即某些方法是可选的协议)