Cocoa против Cocoa Touch - Какая разница?
Я изучаю разработку iOS в Objective-C, и я нашел много примеров кода.
Некоторые из них, однако, говорят, что они предназначены только для Mac OS X (не iOS).
Может кто-нибудь объяснить мне, в чем разница между Cocoa и Cocoa Touch (на уровне библиотеки), чтобы я знал, какой код будет работать и что не будет работать?
Ответы
Ответ 1
Cocoa обычно называют комбинацией платформ Foundation и AppKit, а Cocoa Touch - комбинацией платформ Foundation и UIKit.
Cocoa и Cocoa Touch находятся поверх других коллекций платформ для создания стеков API. Другими уровнями являются Media, Core Services и Core OS.
Основное отличие между Cocoa и Cocoa touch заключается в том, что классы и API пользовательского интерфейса не совпадают с Mac OS X и macOS, поэтому вместо NSTextField
у вас есть UITextField
. Многие из классов имеют одинаковую функциональность и могут быть легко перенесены путем простого изменения имени класса, хотя для большинства из них потребуются некоторые дополнительные изменения, но обычно ничего лишнего.
Существуют также некоторые различия между платформами Foundation в Cocoa и Cocoa Touch, чаще всего отсутствуют классы, например, у Cocoa есть NSHost
, а у Cocoa Touch нет.
Вы узнаете больше о нюансах между ними и вскоре сможете инстинктивно узнать, что будет работать на iPhone с небольшими изменениями/без изменений и что потребует некоторой работы для переноса между ними, но это не так сложно.
Ответ 2
Платформа приложений для
я) Cocoa является платформой приложения для Mac OS X.
ii) Cocoa Touch - это платформа приложений для iPhone и iPod Touch.
Каркасы
я) Cocoa: основа и AppKit.
ii) Cocoa Touch: основа и UIKit
Отсутствие определенных классов
У Cocoa есть NSHost, а у Cocoa Touch нет
API
i) Cocoa: у всех классов, используемых в Cocoa, есть префикс NS Пример: NSTextField
ii) Cocoa Touch: классы, используемые в Cocoa, имеют префикс UI Ex: UITextField
Паттерны MVC
i) Cocoa: Cocoa имеет несколько альтернативных шаблонов проектирования - в дополнение к MVC
ii) Cocoa Touch: iPhone SDK имеет усиленную систему MVC, которая работает лучше, чем стандартная MVC в Cocoa
Другие отличия
Существуют также различия в жизненном цикле приложений, песочнице, использовании памяти
Ссылки:
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/
Ответ 3
В разделе Миграция с Cocoa Touch Обзора технологии iPhone OS представлен хороший обзор различий со ссылками на более конкретные документы для каждого слоя.
Большая разница в уровне пользовательского интерфейса. На Mac у вас есть фреймворк AppKit, на iPhone - UIKit. Меньшие различия в структуре Основы (ссылка на документ выше).
Ответ 4
В терминах import
в Swift
import Cocoa
в приложении Mac OSX такое же, как
import AppKit
import CoreData
import Foundation
тогда как мы не можем import CocoaTouch
в iOS
Ответ 5
Cocoa по сравнению с Cocoa Touch-
Cocoa - это платформа приложений, используемая для Mac OSX,
Cocoa Touch - это платформа приложений, используемая для iPhone и iPod touch
Cocoa - Foundation + AppKit Framework,
Cocoa Touch - Foundation + UIKIT Framework
Ответ 6
1) Cocoa, который включает фреймворки Foundation и AppKit, используется для разработки приложений, работающих в OS X.
2) Cocoa Touch, который включает фреймворки Foundation и UIKit, используется для разработки приложений, работающих на iOS.