私のUIViewControllerサブクラスでは、initまたはviewDidLoadでUIPickerViewのデータのNSArrayを初期化する必要がありますか?ありがとう。iPhone dev - initまたはviewDidLoadで配列を作成する
4
A
答えて
3
ビューを複数回読み込むことができます(アンロードすることもできますので、配列をリロードすることもできます)ので、viewDidLoad
と呼びます。
また、ほとんどの場合、iPhoneにデータを遅延ロードすることをお勧めします。 viewDidLoad
にデータをロードすると、init
よりもずっとレイジーです。これは、initを使用するとパフォーマンスが向上する可能性がありますが、View Controllerをすぐには使用しない場合があります。
2
これは、配列の格納先とその初期化の方法によって異なります。 viewDidLoad
は複数回呼び出すことができます(特に、メモリ不足の警告がプログラムに送信された後、非アクティブなビューコントローラはビューをアンロードし、アクティブになったときに再び読み込みます)。init
は、オブジェクトの
1
initでこれを行うケースの1つは、viewWillAppearの後にviewDidLoadを呼び出すことができるということです。その時点で配列が使用されている場合は、初期化をinitに行う必要があります。
一般に、viewDidLoadは、複数回呼び出すことができることを念頭に置いている限り、かなり良い場所です。
関連する問題
- 1. データ構造を初期化する場所:initまたはviewDidLoad?
- 2. iPhone viewDidLoad
- 3. delegate = [[UIApplication sharedApplication] delegate]; initで動作しません:viewDidLoadのみ
- 4. Javaのint配列またはdouble配列を作成する
- 5. iPhoneのviewDidLoad
- 6. initメソッドは構文砂糖を持つinit配列ですか?
- 7. PHPでネストされた配列を作成するには?
- 8. iPhone用のCGMutablePathRefの配列を作成していますか?
- 9. iPhoneのdev - performSelector:withObject:afterDelayまたはNSTimer?
- 10. iPhone dev - didReceiveMemoryWarningまたは毎回
- 11. iPhone Dev - UIViewController title、tabBarItem、tag
- 12. iphone:リソースファイル内の文字列の配列を作成
- 13. PowerShellで配列の配列を作成するには?
- 14. 配列がまだ作成されていない場合のNg-init
- 15. PHPは配列を作成します
- 16. バイト配列から16または32ビットイメージを作成する
- 17. uint32またはuchar配列からARGB QImageを作成する
- 18. rethinkdb文書の配列を作成または追加する
- 19. viewDidLoadでiPhoneカメラを起動する方法は?
- 20. iPhoneアプリがクラッシュ - のviewDidLoad
- 21. 配列の配列を作成するためのRubyスクリプト
- 22. iPhone Dev - UIToolbarはウィンドウまたはビューに入りますか?
- 23. xcodeで配列キーと値を作成する方法は?
- 24. PHPは別の配列から配列を作成します
- 25. MATLABで画像のリスト(または配列)を作成
- 26. iphone devの
- 27. 配列内のphp配列は作成できません
- 28. iPhone Dev - NSString Creation
- 29. トラブル(iPhoneのDev)
- 30. [iPhone-devの]
これは意味がありますが、viewDidUnloadが呼び出されたときに教えてください。私は、ビューがアンロードされたときに、いつ自動的にそれが起こるのか知っていますか?手動でどのようにアンロードできますか? – mk12
ビューはメモリ警告を受信するとUIViewControllerによってアンロードされ、その時点でviewDidUnloadが呼び出されます。 viewDidLoadで配列を作成する場合は、必ずviewDidUnloadで配列を破棄する必要があります。また、ビューが表示されていない場合はアクセスされないようにする必要があります(表示されるとビューがアンロードされることはありません)。ビューが表示されていなくてもアクセスする必要がある場合(たとえば、更新する場合)、initで作成することをお勧めします。 Appleは、簡単に再作成できるオブジェクトに対してのみviewDidLoadを使用することを推奨しています。 –
initで作成する代わりに、配列をプロパティとして定義し、初めてアクセスするときに遅延配列を作成することもできます。最終結果はinitメソッドと同じですが、配列にアクセスしないとメモリを使用しません。 –