2010-11-26 12 views
1

起動時にuitableviewと表示されるTabBarアプリがあります。 tableviewのデータは、アプリのドキュメントディレクトリに保存されているファイルによってアクセスされます。データファイルは非常に静かです(60MB)。特定のデバイス(3G)で初めて、ディレクトリに書き込むには時間がかかり、iOSがアプリを強制終了します。タブバーアプリのアクティビティインジケータ

このファイルをディレクトリに書き込んでいるときにアクティビティインジケータを追加したいが、どこに置くべきかわからない。私は起動時にビューコントローラをロードし、ファイルの書き込みが完了したらそれを解除する必要がありますか?また、私はこのコントローラをロードし、それを却下して実際のtableviewをロードする方法を知りません。助言がありますか?一見間違いなく価値がある -

+0

私は100%ではないですので、この答えは考えていません。しかし、ウォッチドッグはあなたのアプリを殺していますが、応答時間が長くかかっていて、アクティビティインジケータを追加してもこれが起こらないようにはなりません。 60MBのデータファイルであるコアの問題を解決する必要があります。文書ではなくローカルストアに置くことはできますか? –

+0

いいえできません。私はそれができることを望む。これが起こっている唯一のデバイスであるため、おそらく3Gデバイスはサポートされません。 (ちなみに、jbデバイスはこの問題を共有しないので、ウォッチドッグを無効にするのでしょうか?) – treasure

+0

あなたのアプリを起動して表示する必要があるかもしれませんし、バックグラウンドスレッドでコピーを開始し、 。私はMainThreadが応答しているのでwatchDogはあなたのアプリを殺さないと思う。 – MetaImi

答えて

1

はまた、かなりの数の良いWWDCセッションWWDC10がある

dispatch_queue_t background_queue = dispatch_queue_create("com.your.rdns.notation", NULL); 
dispatch_async(background_queue,^{ 
    //do your work here... 

    dispatch_async(dispatch_get_main_queue(),^{ 
    //notify the ui here, when your task is done... 
    }); 
}); 

背景に仕事を派遣します!

歓声

ロン

関連する問題