У меня вопрос об переопределении автогенерируемых методов доступа. Следующие не будут работать (я считаю), потому что каждый геттер ссылается на другого получателя. Существует ли правило, согласно которому методы доступа не должны использовать другие методы доступа, или вам просто нужно следить за этими ситуациями индивидуально?Аксессоры/Getters и Lazy Инициализация
-(UIImage *) image{
if(image == nil){
if(self.data == nil){
[self performSelectorInBackground: @selector(loadImage) withObject: nil]
}else{
self.image = [UIImage imageWithData: self.data];
}
}
return image;
}
-(NSData *) data {
if(data == nil){
if(self.image == nil){
[self performSelectorInBackground: @selector(loadData) withObject: nil]
}else{
self.data = UIImageJPEGRepresentation(self.image, 0.85);
}
}
return data;
}
Я должен подчеркнуть, что использование изображения, представленные здесь в качестве примера, и мысли относительно того, что делать в этом конкретном примере, менее важны, чем в общем случае.
Тот факт, что он является циркулярным, является тем, из чего возникают мои вопросы. –