2010-11-26 7 views
1

시작시 uitableview을 표시하는 TabBar 앱이 있습니다. tableview 데이터는 앱의 문서 디렉토리에 저장된 파일을 통해 액세스됩니다. 데이터 파일은 매우 조용합니다 (60MB). 처음으로 특정 기기 (3G)에서만 디렉토리에 글을 쓰는데 너무 오래 걸리고 iOS가 앱을 죽입니다.tabbar 앱의 활동 표시기

이 파일을 디렉토리에 쓰는 동안 활동 표시기를 추가하고 싶지만 넣어야 할 곳이 없습니다. 시작시 뷰 컨트롤러를로드 한 다음 파일 쓰기가 완료되면이를 닫아야합니까? 또한, 나는이 컨트롤러를로드하고 그것을 무시하고 실제 내 tableview을로드하는 방법을 모른다. 어떤 제안?

+0

나는 100 % 아니다 따라서이 대답을 생각하지 않는다. 그러나 워치 독은 응답 시간이 너무 오래 걸리므로 앱을 죽이고 활동 표시를 추가해도 이러한 일이 발생하지 않도록 할 수는 없습니다. 60MB 데이터 파일 인 핵심 문제를 조사해야합니다. 문서 대신 로컬 저장소에 저장할 수 있습니까? –

+0

아니요. 나는 그것을 할 수 있었으면 좋겠다. 이것이 일어나고있는 유일한 장치이기 때문에 아마도 3G 장치를 지원하지 않을 것입니다. (jb 장치가이 문제를 공유하지 않는 방식으로 워치 독을 비활성화합니까?) – treasure

+0

어플을 시작하고 표시하는 데 시간이 걸린 다음 백그라운드 스레드에서 복사본을 시작하고 완료되면 tableview를 다시로드해야합니다. . MainThread가 응답하기 때문에 WatchDog이 앱을 죽이지는 않을 것입니다. – MetaImi

답변

1

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... 
    }); 
}); 

는 또한 꽤 좋은 WWDC 세션 WWDC10가 배경으로 작업을 파견 -보고 확실히 가치!

환호