Руководство по программированию по общей архитектуре приложений Cocoa

Я довольно много занимался программированием Cocoa, как для OS X, так и для iOS, и я приобрел довольно много опыта в том, что работает, а что нет, в отношении того, как вещи в целом сочетаются друг с другом. Тем не менее, есть еще много аспектов архитектуры Cocoa, которые не совсем ясны, и мне интересно, может ли быть какое-то руководство/книга/и т.д. объясняя, как работают некоторые из этих вещей.

Например, тот, который я недавно наткнулся:

  • Настройка NSViewController и привязка его «представленного объекта» к «выборке» NSArrayController, а затем привязка элементов пользовательского интерфейса к этому представленному объекту не работает. Почему нет? Как лучше всего поступить в этой ситуации? Я закончил тем, что установил NSArrayController как его представленный объект, но это кажется неправильным - это плохой дизайн?

Есть много других мелких вещей, о которых я задавался вопросом в прошлом, например, как лучше настроить пользовательские представления. (На самом деле я создавал пустой NSView в Interface Builder, затем создавал собственное представление в коде и устанавливал его в качестве подпредставления этого представления!) Cocoa невероятно гибок, и есть много способов сделать то же самое, но ясно, что некоторые из них, подобные этому, могут вызвать проблемы в будущем.

На сайте разработчиков Apple есть много справочных материалов, которые у меня не было времени просматривать, и я уверен, что многое из этого описано в различных документах, но иногда сторонний ресурс может быть полезен и также может вызывать ситуации, не описанные в основной документации. Есть предположения?


person Justin Mrkva    schedule 10.08.2011    source источник


Ответы (1)


Я не знаю, отвечает ли он на ваши конкретные вопросы или нет, но Шаблоны проектирования Cocoa от Бака и Яктмана хорошо объясняют, почему опытные разработчики Cocoa поступают определенным образом.

person Gabriel Roth    schedule 02.11.2011
comment
Принимаю это, потому что это было давно. - person Justin Mrkva; 22.01.2014