Я широко использую делегацию для структуры VIEW - CONTROL - MODEL. Обычно объекты MODEL CONTROL & сохраняются во время работы приложения, что вызывает небольшие проблемы.Как узнать, выпущен ли делегат ios
Однако объекты VIEW, которые часто являются объектами UIViewController
, выделяются и выпускаются много раз.
Установка объекта nil
объекту делегата, которому присваивается динамический экземпляр UIViewController
, когда он освобождается, является одним из способов, которым я знаю, как избежать ошибки EXC_BAD_ACCESS.
Однако, даже если я всегда использую:
if ([delegate respondsToSelector:@selector(communityModel:finishedDeletingComment:)]) {
[delegate communityModel:self finishedDeletingComment:succeeded];
}
это не идеально подходит для предотвращения ошибок. Если разные объекты VIEW обмениваются одним или ограниченным числом делегатов объекта CONTROL, это всегда приводит к тому, что делегаты могут быть заменены другим непреднамеренно, в результате чего EXC_BAD_ACCESS
Есть ли лучший способ управлять делегатами, знать, действительно ли он доступен в момент вызова методов делегата?
Я сомневаюсь, что мой обычный способ настройки свойств для делегата должен быть изменен. Я использую этот способ, чтобы установить свойства делегата:
@property (nonatomic, assign) id<ControlDelegate> delegate;
Я иду на правильный путь, сомневаясь в настройке свойств?