Ich habe eine Klasse, die verantwortlich ist und der Besitzer meiner Modellobjekte. Es weist Speicher für die Modelle zu und lässt sie beibehalten und ist verantwortlich für die Freigabe, wenn das Dealloc passiert.Gibt ich diese Instanzvariable auf dem iPhone frei?
Jetzt habe ich einen entsprechenden UIViewController, der in diesem Fall als Client fungiert. Es wird mehrere Instanzvariablen haben, die auf die benötigten Modelle zeigen. Es muss den Speicher nicht für sie reservieren, da die dafür verantwortliche Klasse es bereits getan hat. Muss ich den Speicher noch vom Client freigeben? Hier ist ein Beispiel
ModelHolder.m haben so etwas wie
- (NSArray *)modelA
{
if (modelA == nil) {
modelA = [[ModelClassA alloc] init];
}
return modelA
}
- (void)dealloc { [super dealloc]; [modelA release]; }
Nun ist die ClientViewController etwas ähnliches haben:
@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?
}
Bitte nichts dagegen keine syntaktische Fehler, wie ich dies nur auf schrieb die Fliege hier. Ich denke, mein Punkt wurde im Code gut dargestellt.
Danke ..
Rechts zählen hat, wie ich, erwähnt nichts ausmacht alles fehlt. Die ursprüngliche Frage steht immer noch so weit wie die Speicherverwaltung geht. – Coocoo4Cocoa
War es gerade jetzt tippen ... :) – epatel