bInstance сможет свободно вызывать методы делегата, лежащие в aInstance. При освобождении bInstance все переменные будут созданы самостоятельно и будут освобождены. При освобождении aInstance, поскольку в bInstance нет запутывания aInstance, он будет освобожден корректно.

и новичком в target-c, какао и iPhone-устройстве в целом, у меня есть сильное желание максимально использовать язык и рамки.

Одним из ресурсов, которые я использую, являются заметки класса CS193P Стэнфорда, которые они оставили в Интернете. Он включает в себя примечания к лекциям, задания и пример кода, и, поскольку курс читался разработчиками Apple, я определенно считаю его «изо рта лошади».

Сайт класса:
http://www.stanford.edu/class/cs193p/cgi-bin/index.php

Лекция 08 связана с назначением для создания приложения на основе UINavigationController, в котором несколько стилей UIViewController помещены в стек UINavigationController. Вот как работает UINavigationController. Это логично Однако на слайде есть несколько строгих предупреждений об обмене данными между вашими UIViewControllers.

Я собираюсь процитировать из этого серьезного слайда:
http://cs193p.stanford.edu/downloads/08-NavigationTabBarControllers.pdf

Страница 16/51:

Как не делиться даннымиГлобальные переменные или синглтоныЭто включает в себя вашделегат приложенияПрямые зависимости делают ваш код менее пригодным для повторного использованияИ более сложный для отладки и тестирования

Хорошо. Я покончил с этим. Не бросайте вслепую все ваши методы, которые будут использоваться для связи между viewcontroller, в ваш делегат приложения и ссылайтесь на экземпляры viewcontroller в методах делегата приложения. Fair 'nuff.

Чуть дальше, мы получаем этот слайд, рассказывающий нам, что мыдолжен делать.

Страница 18/51:

Лучшие практики для потока данныхВычислятьименно так что нужно сообщитьОпределить входные параметры для вашего контроллера просмотраДля связи по иерархии,используйте слабую связьОпределить общий интерфейс для наблюдателей (например, делегирование)

Затем за этим слайдом следует то, что выглядит как слайд заполнителя, на котором лектор, по-видимому, демонстрирует лучшие практики, используя пример с UIImagePickerController. Я хотел бы, чтобы видео были доступны! :(

Хорошо, так что ... я боюсь, что мой объект не так силен. Я также немного смущен последней строкой в ​​приведенной выше цитате. Я делал свою долю в поисках по этому поводу, и я нашел то, что кажется приличной статьей, рассказывающей о различных методах наблюдения / уведомления:
http://cocoawithlove.com/2008/06/five-approaches-to-listening-observing.html

Метод № 5 даже указывает делегатов как метод! За исключением .... объекты могут устанавливать только одного делегата за раз. Так что, когда у меня есть несколько представлений viewcontroller, что мне делать?

Хорошо, это настроенная банда. Я знаю, что могу легко сделать свои методы связи в делегате приложения, ссылаясь на множественные экземпляры viewcontroller в моем appdelegate, но я хочу сделать такую ​​вещь,правильно путь.

Пожалуйста, помогите мне «поступить правильно», ответив на следующие вопросы:

Когда я пытаюсь вставить новый viewcontroller в стек UINavigationController,кто должен делать этот толчок.Который класс / файл в моем коде является правильным местом?Когда я хочу повлиять на какой-то фрагмент данных (значение iVar) в одном из моих UIViewControllers, когда я нахожусь вразные UIViewController, что такое «правильный» способ сделать это?Предположим, что за один раз в объекте может быть установлен только один делегат, как будет выглядеть реализация, когда лектор говорит«Определить общий интерфейс для наблюдателей (например, делегирование)», Пример псевдокода был бы очень полезен здесь, если это возможно.

Ответы на вопрос(4)

Ваш ответ на вопрос