У меня есть сервисный объект с именем 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
, чтобы я мог писать поверх свойства с новым объектом, но я сократил его до этой трассы, и я все еще возникают проблемы ...
Спасибо!