У меня есть служебный объект JSONNetworkUtility, и я сохраняю его в своей модели как ivar, а также синтезированное свойство с тем же именем, неатомарное и сохраненное:
myNetworkUtility = [[JSONNetworkUtility alloc] initNetworkConnectionWithURL:urlString withQueryString:nil delegate:self];
Делегат включает два обратных вызова, один - networkUtility: didFailWithError:
, а другой - networkUtility: didFinishWithData:
. Странно то, что свойство вызывает некоторые странные ошибки:
- (void)networkUtility:(JSONNetworkUtility *)networkUtility didFinishWithData:(NSArray *)jsonArray
{
NSLog(@"myNetworkUtility = %@", myNetworkUtility);
// returns <JSONNetworkUtility: 0x3944450>
NSLog(@"networkUtility = %@", networkUtility);
// also returns <JSONNetworkUtility: 0x3944450>
NSLog(@"self.myNetworkUtility = %@", self.myNetworkUtility);
// fails and throws an NSZombie error!
}
Ошибка, которую я получаю в этой строке:
*** - [MyModel myNetworkUtility]: сообщение отправлено в освобожденный экземпляр 0x148190
Я полностью в тупике! Есть какие-нибудь подсказки относительно того, почему он не работает на геттере? И почему он возвращает совершенно другой объект?
Причина, по которой я использую геттер, заключается в том, что я хотел использовать self.myNetworkUtility = nil
, чтобы я мог писать поверх свойства с помощью новый объект, но я сократил его до этой трассировки, и у меня все еще возникают проблемы ...
Спасибо!