Ich habe einige der View-Code aus Erica Saduns Buch "The iPhone Developer's Cookbook" ausprobiert und habe einen Code gefunden, den ich nicht verstehe. Hier ist der Code für eine Methode Loadview:Warum funktioniert dieser Code aus dem iPhone Developer's Cookbook?
- (void)loadView
{
// Create the main view
UIView *contentView = [[UIView alloc] initWithFrame:
[[UIScreen mainScreen] applicationFrame]];
contentView.backgroundColor = [UIColor whiteColor];
self.view = contentView;
[contentView release];
// Get the view bounds as our starting point
CGRect apprect = [contentView bounds];
// Add each inset subview
UIView *subview = [[UIView alloc]
initWithFrame:CGRectInset(apprect, 32.0f, 32.0f)];
subview.backgroundColor = [UIColor lightGrayColor];
[contentView addSubview:subview];
[subview release];
}
Meine Frage ist, warum sie loslassen content, aber es dann wieder verwenden in [contentView addSubview:subview]
? Hat self.view = contentView
containedView beibehalten?
Das sieht falsch aus. 'contentView' wird nicht bis zum Ende der Methode freigegeben, so dass dies wahrscheinlich keine Probleme verursacht, aber ich kann mir nicht vorstellen, warum Sie es absichtlich so bauen würden. – kubi
Nicht wirklich. Die Zuweisung zu self.view behält contentView bei, so dass es nach dem Erstellen des Objekts am nächsten kommt. Es ist absichtlich so aufgebaut, weil es (im Cocoa-Paradigma) sinnvoll ist, dass der View-Controller die Ansicht behält. –