/ / Init von der Spitze, ordne aber nur [UIViewController] - Ziel-c zu

Init aus Feder, aber nur [UIViewController] zuweisen - Ziel-c

Also mache ich das jetzt in meinem Code:

UIViewController* ctrl =
[[UIViewController alloc] // i"m alloc"ing a UIViewController...

initWithNibName:@"TheNibName" // But this NIB has, within
// interface builder, a link to "UIViewControllerDERIVATIVE".  So really,
// `ctrl` is a UIViewControllerDERIVATIVE instance, not just
// a UIViewController instance.

bundle:nil] ;

Der Grund, warum ich das mache, ist, dass es eine große Bequemlichkeit ist, Code zu schreiben, der modale Dialoge aktiviert.

Meine Frage ist, ist das ok?? Kann ich [alloc] ein UIViewController nur, während wirklich, was aus einer NIB kommt, eine Instanz von UIViewControllerDERIVATIVE? Oder wird es mir später in den Arsch beißen?

Antworten:

2 für die Antwort № 1

Sie können keine zuordnen UIViewController und initialisieren Sie es als UIViewControllerDERIVATIVE, weil es ein Missverhältnis gibt, wie die beiden Klassen ihre Instanzen sehen.

Sobald eine Instanz von einer Klasse zugewiesen wurde, ist sie für die Initialisierung der Klasse verantwortlich. Dies liegt daran, dass die Klasse der Instanz festgelegt wird, wenn die Instanz zugewiesen wird. Sehen NSObject-Referenz mehr Details.