2

IPhone SDK - performSelectorInBackground によるメモリ リーク

バックグラウンドスレッドで実際にpushViewControllerできることを示唆しているようです。

しかし、私はこれを行うべきではないという警告をstackoverflowの人々から受け取ります。
例えば。(iphone) バックグラウンド スレッドからタイマーを開始しますか?

pushViewController は「UI 更新」と見なされますか?
(UIの更新はメインスレッドでのみ行う必要があることを知っているため)

そうであれば
、viewController の読み込みに時間がかかり、読み込み中にインジケーターを表示したい場合。
私のオプションは何ですか?

4

1 に答える 1

3

ここにいくつかの戦略があります。

1) プッシュを実行する前に、実行することがわかっている時点で、現在のビューに適切なアクティビティ ビューを表示します。テーブルの行をクリックする一部のアプリでこれを行いますが、プッシュされたビューは時間がかかる Web 通信を実行する必要があるため、テーブル セルを青色で強調表示したままにして、開示インジケーターの左側に白いスピナーを追加します。 . うまくいきます。

2) 遅延読み込みを使用して新しいビュー コントローラーを画面上にすばやく表示しますが、新しいコントローラーが独自のアクティビティ ビューを処理できるように、重いコードは読み込みが完了するまで延期します。遅延読み込みとは、init メソッドでできるだけ少ないことを行い、viewdidload / viewwillappear / viewdidappear などを慎重に使用して作業を広げ、できるだけ早く画面にアクティビティ ビューを表示する必要があることを意味します。

于 2011-03-30T10:14:24.643 に答える