У меня есть класс, который отвечает и владелец строит мои модельные объекты. Он выделяет память для моделей и сохраняет их, а также отвечает за их освобождение, когда происходит разлочка.
Теперь у меня есть соответствующий UIViewController, который в этом случае выступает в роли клиента. Он будет иметь несколько переменных экземпляра, указывающих на нужную модель (и). Ему не нужно выделять память для них, поскольку класс, ответственный за это, уже сделал это. Мне все еще нужно освободить память от клиента? Вот пример
ModelHolder.m будет иметь что-то вроде
- (NSArray *)modelA
{
if (modelA == nil) {
modelA = [[ModelClassA alloc] init];
}
return modelA
}
- (void)dealloc { [super dealloc]; [modelA release]; }
Теперь ClientViewController будет иметь нечто похожее:
@class myModelA;
@interface ClientViewController : UIViewController {
ModelClassA myModelA;
}
// more code
@end
#import "ModelHolder.h"
@implementation ClientViewcontroller ...... etc
- (void)viewDidLoad
{
self.myModelA = [instanceOfModelHolder modelA];
}
- (void)dealloc {
// am I responsible to release here?
}
Пожалуйста, не возражайте против любых синтаксических ошибок, так как я только что написал это на лету здесь. Я думаю, что моя точка зрения была хорошо проиллюстрирована в коде, хотя.
Спасибо ..