У меня есть объект Person
и протокол PersonDelegate
Person
имеет @property (assign) id<PersonDelegate> delegate
;цель C - вызвать метод на dealloc делегат
где-то в моем коде я:
Person *newPerson = [[Person alloc] init];
newPerson.delegate = theDelegate;
...
[theDelegate release]; // and dealloc
...
now Person has some new information for the delegate, so I call in Person
[self.delegate doSomething];
Но тогда я получаю EXC_BAD_ACCESS
Является ли это потому, что делегат уже dealloc? Как человек может знать, что его делегат dealloc?
но обычно делегаты назначаются, как это работает? – Eyal
, вероятно, потому, что большинство делегатов - это контроллеры представлений или объекты, которые больше, чем сам объект. В этом случае он ясно освобождает делегата сразу – giorashc