我有一个类是负责和建立我的模型对象的所有者。它为模型分配内存并保留它们,并在发生dealloc时负责释放它们。我是否在iPhone上发布这个实例变量?
现在我有一个相应的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?
}
请不要介意任何语法错误,我刚才写的上飞在这里。尽管如此,我认为我的观点在代码中表现得很好。
谢谢。
权,正如我所说,不介意任何缺失。就内存管理而言,原始问题仍然存在。 – Coocoo4Cocoa 2009-02-25 18:48:37
刚才输入了它...... :) – epatel 2009-02-25 18:50:06