В моем делегате приложения у меня есть один объект, который мне нужно использовать в некоторых разных 3-х мониторах. Чтобы использовать его я в интерфейсеObjective-c Делегат, используемый в некоторых viewController должен быть выпущен?
NewsPadAppDelegateiPad *delegate;
и в осуществлении я
delegate = (NewsPadAppDelegateiPad *)[[UIApplication sharedApplication] delegate];
[delegate.reader setDelegate:self];
....
[delegate.reader doSomthing];
Когда в моем методе dealloc я
[delegate release];
delegate=nil;
Я получаю ошибку
[CFString release]: message sent to deallocated instance 0x9d4fac0
Мне действительно нужно это освободить?
Вы не должны сохранять и освобождать делегата приложения. Он создан приложением и будет сохраняться до конца приложения без вашей помощи. Фактически, нет никакой реальной необходимости иметь переменную 'delegate' в ваших контроллерах представления. Вы можете повторно отображать указатель делегата всякий раз, когда вам это нужно, возможно, сохраняя его в локальной переменной в данном методе, но не в любом переменная экземпляра. –