У меня есть элемент управления, который работает следующим образом:Сохранить объект без использования свойства
MyCustomControl *control = [[MyCustomControl alloc] initWithNavigationController:self.navigationController];
control.completion = ^{
[self controlCompletedAction];
};
[control showFromView:self.view];
Однако, так как он не сохранили ничем, управление получает плохой доступ при попытке вызвать некоторые методы.
Сохраняя контроль в свойстве класса вызывающему работает отлично, например:
@property(nonatomic, strong) MyCustomControl *control;
или
@interface MyViewController {
MyCustomControl *control;
}
оба работают нормально.
Однако я бы предпочел не добавлять свойства для каждого отдельного элемента управления, который я делаю. Целью управления является разделение функциональности, чтобы избежать массивных контроллеров просмотра. Свойство не несет ответственности за что-либо еще в контроллере представления, поэтому нет причин держать его вокруг.
Итак, есть ли способ, чтобы сохранить контроль над не используя свойство/Ивар или прибегая к ObjC выполнения?
Какие методы получают плохой доступ? Можете ли вы опубликовать код, где он сбой? –
Кстати, сохранить следует заменить сильным (сохранить pre-ARC) –