Warum nicht behalten initWithRootViewController die Viewcontroller Klasse, die in sie übergeben wird?

StackOverflow https://stackoverflow.com/questions/1054993

  •  20-08-2019
  •  | 
  •  

Frage

Ich habe eine benutzerdefinierte Viewcontroller SourceListViewController genannt, und ich hinzufüge, sie in eine UINavigationController, der Blick auf die dann an das Fenster der iPhone-App hinzugefügt. Nach dem SourceListViewController zu UINavigationController vorbei, löse ich die sourceListViewController.

SourceListViewController *sourceListVC = [[SourceListViewController alloc] initWithNibName:@"SourceListViewController" bundle:nil];
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sourceListVC] autorelease];
[sourceListVC release];

Wenn ich das tue, würde abstürzen die App nach dem Blick auf das Telefon geladen wird. Als ich bemerkte die letzte Zeile aus, fein die App. Ist das nicht initWithRootViewController soll die Kopie sourceListVC behalten?

War es hilfreich?

Lösung

Sie sind autoreleasing Navigation. Also, wenn Navigation bekommt Autoreleased (was wahrscheinlich im nächsten Runloop passieren wird), dann wird so sourceListVC.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top