我正在学习使用Objective-C进行iOS开发,找到了很多代码示例。
其中一些示例说明它们仅适用于Mac OS X(而非iOS)。
请问有人能解释一下Cocoa和Cocoa Touch之间在库级别上的区别吗?这样我就能知道哪些代码可用,哪些不可用了。
我正在学习使用Objective-C进行iOS开发,找到了很多代码示例。
其中一些示例说明它们仅适用于Mac OS X(而非iOS)。
请问有人能解释一下Cocoa和Cocoa Touch之间在库级别上的区别吗?这样我就能知道哪些代码可用,哪些不可用了。
Cocoa通常被称为Foundation和AppKit框架的组合,而Cocoa Touch则是Foundation和UIKit框架的组合。
Cocoa和Cocoa Touch位于其他框架集合之上,创建API堆栈。其他层包括Media、Core Services和Core OS。
Cocoa和Cocoa Touch的主要区别在于UI类和API不同于Mac OS X和macOS的,因此,您使用UITextField
代替NSTextField
。许多类具有相同的功能,可以通过更改类名轻松移植,但大多数需要一些修改,但通常不会太复杂。
Cocoa和Cocoa Touch的Foundation框架之间也存在一些差异,最常见的是缺少某些类,例如,Cocoa具有NSHost
而Cocoa Touch没有。
您将了解更多有关两者之间微妙差别的信息,很快便能本能地知道哪些内容可以在iPhone上轻松/无需修改运行,哪些需要一些工作才能进行移植,但这并不难。
应用框架
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前缀,例如:NSTextField。
ii) Cocoa Touch:在Cocoa Touch中使用的类都带有UI前缀,例如: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/
关于 Swift 中的 import
在 Mac OSX 应用程序中使用 import Cocoa
与以下代码相同:
import AppKit
import CoreData
import Foundation
在 iOS 中我们无法import CocoaTouch
Cocoa 对比 Cocoa Touch -
Cocoa - 用于 Mac OSX 的应用程序框架,
Cocoa - Foundation + AppKit 框架,
Cocoa Touch - Foundation + UIKIT 框架。
1) Cocoa包括Foundation和AppKit框架,用于开发在OS X上运行的应用程序。
2) Cocoa Touch包括Foundation和UIKit框架,用于开发在iOS上运行的应用程序。
Cocoa
NeXTSTEP -> Cocoa -> Swift Standard Library
Cocoa
是iOS和OS X的应用程序环境。
应用程序环境
是一组:
Objective-C 运行时
[关于]应用程序环境
包括:
Cocoa Touch
是iOS层,其中包含一组支持iOS应用的库/框架。例如 - UIKit、MapKit...
*通常Cocoa
被认为只是一组核心库/框架
Cocoa框架
是一个包含NSObject
的后代类的框架,可以在Objective-C运行时
[关于]下运行
具有Cocoa API的框架
- 与Cocoa框架一起工作并支持Cocoa惯例的次级框架