Zunächst sah ich mir die Art und Weise an, wie "pickerData" gesetzt wird, und fragte mich, warum man es nicht einfach direkt zuweisen kann (wie in METHOD_002), aber dann stellte ich fest, dass ich eigentlich die von mir definierten Zugriffsmethoden verwenden und die Instanzvariablen nicht direkt setzen sollte. Verstehe ich das richtig, dass METHOD_001 ein besserer Weg ist, dies zu tun?
@property(nonatomic, retain) IBOutlet NSArray *pickerData;
METHOD_001
-(void)viewDidLoad {
NSLog(@"VIEW: Single ... Loaded");
NSArray *dataArray = [[NSArray alloc] initWithObjects:@"A", @"B", @"C",nil];
[self setPickerData:dataArray];
[dataArray release];
[super viewDidLoad];
}
-(void)dealloc {
[pickerData release];
[super dealloc];
}
OR METHOD_002
-(void)viewDidLoad {
NSLog(@"VIEW: Single ... Loaded");
if(pickerData != nil) [pickerData release];
pickerData = [[[NSArray alloc] initWithObjects:@"A", @"B", @"C", nil] retain];
[super viewDidLoad];
}
-(void)dealloc {
[pickerData release];
[super dealloc];
}
EDIT_001:
Zunächst einmal habe ich die "nil"-Werte hinzugefügt, um die NSArrays zu beenden, da ich von C komme, vergesse ich das immer, mein Fehler. Außerdem hast du Recht, ich habe in METHOD_002 nicht berücksichtigt, dass pickerData bereits gesetzt sein könnte und dadurch das alte Objekt verloren geht. Sobald man anfängt, diese Probleme zu bemerken und den Code zu korrigieren, sieht es so aus, als ob METHOD_001 die beste Idee ist. Oder man verwendet die Eigenschaft einfach direkt, wie Vladimir und eJames bemerkten.
self.pickerData = [NSArray arrayWithObjects: @"A", @"B", @"C", nil];
EDIT_002:
Vielen Dank für alle Hinweise und Kommentare, für jetzt werde ich mit METHOD_001 bleiben, ich könnte genauso gut NSArrayWithObjects verwenden: aber ich versuche, Speicherverbrauch niedrig zu halten, indem ich Dinge selbst so schnell wie möglich freigebe (nicht, dass es hier, aber für zukünftige Projekte zählt) Auch ich mag das Gefühl von self.pickerData, aber ich bin immer noch unsicher, wie ich über Punkt-Notation fühlen und haben für jetzt versucht, mit alten Stil-Objekte und Nachrichten wo möglich zu bleiben. Nochmals vielen Dank für die Hilfe.
gary