Cocoa与Cocoa Touch - 有什么区别?

时间:2010-02-19 16:25:21

标签: cocoa cocoa-touch

我正在使用Objective-C学习iOS开发,我发现了很多代码示例。

但是,其中一些人说他们只适用于Mac OS X(不是iOS)。

有人可以向我解释一下Cocoa和Cocoa Touch之间的差异(在图书馆级别),以便我知道哪些代码可以使用以及什么不起作用?

6 个答案:

答案 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为单位

Mac OSX应用程序中的

import Cocoa

相同
import AppKit
import CoreData
import Foundation

而我们不能在iOS

import CocoaTouch

答案 4 :(得分:1)

Cocoa与Cocoa Touch-

Cocoa - 这是用于Mac OSX的应用程序框架,

Cocoa Touch - 这是用于iPhone和iPod touch的应用程序框架

Cocoa - Foundation + AppKit Framework,
Cocoa Touch - Foundation + UIKIT Framework

答案 5 :(得分:0)

1)Cocoa包含Foundation和AppKit框架,用于开发在OS X上运行的应用程序。

2)Cocoa Touch,包括Foundation和UIKit框架,用于开发在iOS上运行的应用程序。