Я изучаю разработку iOS в Objective C, и я нашел много примеров кода.
Некоторые из них, тем не менее, говорят, что они только для Mac OS X (не iOS).
Кто-то может объяснить мне, каково различие между Касанием Какао и Какао (на уровне библиотеки), так, чтобы я знал, какой код будет работать и что не будет работать?
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 с небольшими изменениями, а что потребует некоторой работы для переноса, но это не так сложно.
Раздел Переход с Cocoa Touch в Обзоре технологий iPhone OS дает хороший обзор различий со ссылками. к более конкретным документам для каждого слоя.
Большая разница в уровне пользовательского интерфейса. На Mac у вас есть фреймворк AppKit, на iPhone - UIKit. Меньшие различия есть в структуре Foundation (ссылка на документ выше).