Frage

In meiner UIViewController Unterklasse soll ich initialisieren die NSArray von Daten für die UIPickerView in init oder in viewDidLoad und warum? Danke.

War es hilfreich?

Lösung

Ich würde es in viewDidLoad nennen, wie die mehr als einmal geladen werden kann (und auch entladen werden, daher könnten Sie auch das Array neu geladen werden sollen).

Außerdem ist es eine gute Idee, Daten auf dem iPhone lazily lädt die meiste Zeit. Laden von Daten in viewDidLoad sind viel fauler als init, was besser für Sie durchführen könnte am Ende, wenn Sie init, aber nicht sofort Ihre View-Controller verwenden.

Andere Tipps

Es hängt davon ab, genau das, was Sie das Array beabsichtigen, zu speichern, und wie Sie beabsichtigen, es zu initialisieren. viewDidLoad kann mehrmals aufgerufen werden (besonders nach einer Low-Memory-Warnung an Ihrem Programm gesendet wird - inaktive Ansicht-Controller, ihre Ansichten entladen werden, so dass sie dann neu zu laden, wenn die aktiven oder wieder sichtbar werden), während init wird in der Regel nur einmal für die gesamte Lebensdauer genannt werden des Objekts.

Ein Fall für diese in init tun, ist, dass viewDidLoad nach viewWillAppear aufgerufen werden kann. Wenn Sie zu diesem Zeitpunkt vorhanden stützen sich auf das Array zu sein, müssen Sie die Initialisierung in init setzen.

Im Allgemeinen viewDidLoad ein ziemlich guter Ort ist, solange man im Auge behalten, es mehr als einmal aufgerufen werden.

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