我正在使用Objective-C学习iOS开发,我发现了很多代码示例。
但是,其中一些人说他们只适用于Mac OS X(不是iOS)。有人可以向我解释一下Cocoa和Cocoa Touch之间的差异(在图书馆级别),以便我知道哪些代码可以使用以及什么不起作用?
答案 0 :(得分:72)
Cocoa通常被称为Foundation和AppKit框架的组合,而Cocoa Touch是Foundation和UIKit框架的组合。
Cocoa和Cocoa Touch位于其他框架集合之上,以创建API堆栈。其他层是媒体,核心服务和核心操作系统。
Cocoa和Cocoa触摸的主要区别在于UI类和API与Mac OS X和macOS不同,因此NSTextField
代替UITextField
。许多类共享相同的功能,只需更改类名即可轻松移植,但大多数类需要更多更改,但通常不会太重。
Cocoa和Cocoa Touch中的Foundation框架之间也存在一些差异,例如,Cocoa有NSHost
而Cocoa Touch没有。{/ p>
你将会更多地了解两者之间的细微差别,很快就能够本能地知道什么在iPhone上有什么作用,几乎没有修改,什么需要一些工作来进行移植,但这并不困难。
答案 1 :(得分:25)
应用程序框架
i)Cocoa是Mac OS X的应用程序框架
ii)Cocoa Touch是iPhone和iPod Touch的应用程序框架。
<强>框架强>
i)Cocoa:Foundation和AppKit
ii)Cocoa Touch:Foundation和UIKit
缺少某些课程
Cocoa有NSHost和Cocoa Touch不
<强> API 强>
i)Cocoa:Cocoa中使用的所有类都有NS前缀Ex:NSTextField
ii)Cocoa Touch:Cocoa中使用的类具有UI前缀Ex:UITextField
MVC模式
i)Cocoa:除了MVC之外,Cocoa还有多种替代设计模式
ii)Cocoa Touch:iPhone SDK具有增强的MVC系统,其性能优于Cocoa中的默认MVC
其他差异
应用程序生命周期,沙盒,内存占用中也存在差异
链接:
http://teks.co.in/site/blog/cocoa-vs-cocoa-touch-beginners-guide/
http://iphonenativeapp.blogspot.in/2011/02/difference-between-cocoacocoa-touch-and.html
https://iphonecodecenter.wordpress.com/tag/difference-between-cocoa-cocoa-touch/
答案 2 :(得分:4)
iPhone OS技术概述的Migrating from Cocoa部分提供了对每个层的更具体文档链接的差异的完整概述。
最大的区别是UI层。在Mac上,你拥有AppKit框架,在iPhone上你有UIKit。较小的差异在基金会框架中(在上面的文档中链接)。
答案 3 :(得分:1)
以斯威夫特的import
为单位
import Cocoa
与
import AppKit
import CoreData
import Foundation
而我们不能在iOS
中import CocoaTouch
答案 4 :(得分:1)
Cocoa与Cocoa Touch-
Cocoa - 这是用于Mac OSX的应用程序框架,
Cocoa - Foundation + AppKit Framework,
Cocoa Touch - Foundation + UIKIT Framework
答案 5 :(得分:0)
1)Cocoa包含Foundation和AppKit框架,用于开发在OS X上运行的应用程序。
2)Cocoa Touch,包括Foundation和UIKit框架,用于开发在iOS上运行的应用程序。