我有一個類是負責和建立我的模型對象的所有者。它爲模型分配內存並保留它們,並在發生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