4

UIViewController サブクラスでは、UIPickerView のデータの NSArray を init または viewDidLoad で初期化する必要がありますが、その理由は? ありがとう。

4

3 に答える 3

3

viewDidLoadビューは複数回ロードできるため(またアンロードできるため、配列をリロードすることもできます)、私はそれを呼び出します。

また、ほとんどの場合、iPhone でデータを遅延ロードすることをお勧めします。でのデータの読み込みviewDidLoadは よりもはるかに怠惰initです。初期化するとパフォーマンスが向上する可能性がありますが、すぐにビュー コントローラーを使用しないでください。

于 2009-08-16T23:06:58.503 に答える
2

それは、配列に何を格納するか、およびどのように初期化するかによって異なります。viewDidLoadは複数回呼び出すことができます (特にメモリ不足の警告がプログラムに送信された後 - 非アクティブなビュー コントローラーはビューをアンロードし、ビュー コントローラーがアクティブまたは再び表示されるとビューをリロードします)、init通常はその有効期間中に 1 回だけ呼び出されます。物体。

于 2009-08-16T22:54:38.377 に答える
1

init でこれを行う 1 つのケースは、viewWillAppear の後に viewDidLoad を呼び出すことができることです。その時点で配列が存在することに依存している場合は、初期化を init に入れる必要がある場合があります。

一般的に言えば、viewDidLoad は、複数回呼び出される可能性があることを念頭に置いている限り、かなり良い場所です。

于 2009-08-17T02:33:30.747 に答える