私はObjective-CでのiOS開発を学び、多くのコード例を見つけました。
ただし、Mac OS X(iOSではない)専用であると言う人もいます。
CocoaとCocoa Touchの違い(ライブラリレベル)について誰かに説明してもらえますか?そうすれば、どのコードが機能し、何が機能しないのかがわかりますか?
Cocoaは一般にFoundationとAppKitフレームワークの組み合わせと呼ばれ、Cocoa TouchはFoundationとUIKitフレームワークの組み合わせと呼ばれます。
CocoaとCocoa Touchは、APIスタックを作成するために、フレームワークの他のコレクションの上に配置されます。その他のレイヤーは、メディア、コアサービス、コアOSです。
CocoaとCocoa touchの主な違いは、UIクラスとAPIがMac OS XやmacOSと同じではないため、NSTextField
の代わりにUITextField
が使用されることです。多くのクラスは同じ機能を共有しており、クラス名を変更するだけで非常に簡単に移植できますが、ほとんどのクラスには変更が必要ですが、通常はそれほど重いものは必要ありません。
CocoaとCocoa TouchのFoundationフレームワークの間にもいくつかの違いがあります。たとえば、CocoaにはNSHost
があり、Cocoa Touchにはありません。
あなたは2つの間の微妙な違いを知るようになり、ほとんど変更なしでiPhoneで何が機能し、何を移植するためにいくつかの作業が必要になるかを直感的にすぐに知ることができますが、それほど難しくはありません。
アプリケーションフレームワーク
i)CocoaはMac OS Xのアプリケーションフレームワークです。
ii)Cocoa Touchは、iPhoneおよびiPod Touchのアプリケーションフレームワークです。
フレームワーク
i)ココア:FoundationとAppKit。
ii)Cocoa Touch:FoundationとUIKit
特定のクラスが存在しない
CocoaにはNSHostがあり、Cocoa Touchにはありません
[〜#〜] api [〜#〜]
i)Cocoa:Cocoaで使用されるすべてのクラスにはNS接頭辞があります例:NSTextField
ii)Cocoa Touch:Cocoaで使用されるクラスには、UIプレフィックスEx:UITextFieldがあります。
MVCパターン
i)ココア:ココアには、MVCの他に複数の代替デザインパターンがあります。
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.htmlhttps://iphonecodecenter.wordpress.com/tag/difference-between-cocoa-cocoa-touch/
IPhone OSテクノロジー概要の Cocoa Touchからの移行 セクションでは、各レイヤーのより具体的なドキュメントへのリンクを使用して、違いの概要を説明しています。
大きな違いはUIレイヤーです。 MacにはAppKitフレームワークがあり、iPhoneにはUIKitがあります。小さな違いはFoundationフレームワークにあります(上記のドキュメントにリンクされています)。
Swiftのimport
に関して
import Cocoa
Mac OSXアプリケーションでは、
import AppKit
import CoreData
import Foundation
import CocoaTouch
iOS
ココア対ココアタッチ
Cocoa-Mac OSXで使用されるアプリケーションフレームワークです。
Cocoa-Foundation + AppKit Framework、
Cocoa Touch-Foundation + UIKIT Framework
1)CocoaはFoundationおよびAppKitフレームワークを含み、OS Xで実行されるアプリケーションの開発に使用されます。
2)FoundationおよびUIKitフレームワークを含むCocoa Touchは、iOSで実行されるアプリケーションの開発に使用されます。