Я видел несколько постов, связанных с делегатами, и я хотел бы знать, как правильно на них ссылаться.Предположим, у меня есть объект, объявленный как:
@interface MyViewController : UITableViewController {
id delegate;
}
@property (nonatomic, retain) id delegate;
@end
В течение жизненного цикла MyViewController
он будет выполнять вызовы методов своего делегата в ответ на взаимодействие с пользователем.
Когда этовремя, чтобы избавиться от экземпляра MyViewController
, нужно ли delegate
ivar быть release
'ed в методе реализации dealloc
, поскольку он объявлен с помощью retain
?
или наоборотдолжен ли delegate
быть сохранен?Возможно, это должно быть @property (nonatomic, assign) id delegate
?Согласно документация Apple :
сохранить ... Обычно этот атрибут используется для скалярных типов, таких как NSInteger и CGRect, или (в среде с подсчетом ссылок) для объектов, которые выне владею такими, как делегаты.
Обычно я просто следую тому, что говорят документы, но я видел много кода, который вызывает retain
для делегата.Это просто "плохой код"?Я полагаюсь на экспертов здесь ... Какой правильный способ справиться с этим?