СПАСИБО ВСЕМ за очень полезную дискуссию на эту тему! Очевидно, что есть несколько способов приблизиться к этому, так что это очень полезный набор методов.
Просто чтобы вы знали, что при дальнейшем изучении этой проблемы я наткнулся на пару других очень полезных страниц, перечисленных ниже. Они включают упоминание NSNotificationCenter, о котором я раньше не слышал; а также идея шаблона проектирования «внедрение зависимостей».
Идея состоит в том, чтобы поддерживать "низкую связь" (1) между классами, делая код более модульным и более удобным для модульного тестирования.
И хотя шаблон «уведомления» звучит как отличная идея, в этом случае он может быть немного излишним, учитывая, что мне нужен только ОДИН экземпляр модели данных во время работы приложения, и он не меняется во всем.
Наконец, несмотря на то, что директива компилятора "@public" хорошо документирована в руководстве Apple Obj-C (2), позже я обнаружил захватывающий эдикт в другом документе, утверждающий, что он не должен использоваться ! Цитируется из собственного Основы какао Apple (3):
«Дайте правильную область видимости вашим переменным экземпляра. Никогда не определяйте область видимости переменной как @public, так как это нарушает принцип инкапсуляции. ...»
(Странно, что они не упоминают об этом в своем руководстве «Objective-C 2.0», где директива фактически объясняется.)
Во всяком случае, вот еще пара ссылок, которые, как я обнаружил, полны некоторых замечательных идей. FYI:
С.О .: "Какой самый лучший способ
общаться между
viewcontrollers? " (4) << </p>
CocoaWithLove: "Пять подходов к
прослушивание, наблюдение и уведомление в
Какао " (5)
CocoaWithLove: "Одиночки,
AppDelegates и данные верхнего уровня " (6)
Надеюсь, что это поможет. В любом случае, спасибо всем еще раз!
Лучший,
Rond
P.S. Хлоп! Это не позволит мне публиковать более одной встроенной гиперссылки, поэтому я перечислю их здесь. Очевидно, все они имеют префикс «http://” ...: O
(1): en.wikipedia.org/wiki/Coupling_(computer_science)
(2): developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/ObjectiveC/Articles/ocDefiningClasses.html#//apple%5Fref/doc/uid/TP30001163-CH12-TPXREF127
(3): developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/AddingBehaviortoaCocoaProgram/AddingBehaviorCocoa.html#//apple_ref/doc/uid/TP40002974-CH5-SW12
(4): stackoverflow.com/questions/569940/whats-the-best-way-to-communicate-between-viewcontrollers
(5): cocoawithlove.com/2008/06/five-approaches-to-listening-observing.html
(6): cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html