Рассмотрят следующую общую ситуацию:Objective-C/Cocoa: Правильный дизайн для делегатов и контроллеров
У вас есть некоторые MainView
в приложении какао, загруженные с СИБ, который управляется с помощью MainViewController
. Ваш MainView
содержит некоторые элементы управления, такие как UILabel infoLabel
. У вас также есть делегат MyDelegate
класс, который получает какое-то событие.
Вы хотите удостовериться, что когда MyDelegate
принимает свое событие, infoLabel
обновляется соответствующим образом. Однако проблема заключается в том, что MyDelegate
не имеет ссылки на MainView
или MainViewController
и не знает о этикетке.
Одним из решений является передача ссылки на объект делегата, но это не так, потому что вы можете оказаться в нежелательной ситуации, когда объект имеет ссылки друг на друга.
Какова надлежащая конструкция для решения этой проблемы?
У меня такая же проблема, как сейчас. Решение для нас ссылается. Вы говорите, что это нежелательная ситуация. Не могли бы вы объяснить, почему? – Kriem
Для меня две основные причины: циркулярные ссылки «чувствуют» неправильно; вы склонны постоянно ссылаться на эту ссылку. Я могу быть полностью выключен. – Jake
Я знаю, что вы имеете в виду. Я с нетерпением жду того, что другие думают об этом. Хороший вопрос. – Kriem