2010-08-16 4 views
0

다양한 인터넷 사이트에서 많은 데이터를 가져와야하는 뷰가있는 아이폰 앱이 있습니다. 따라서로드하는 데 필요한 시간이 허용되지 않습니다. 'applicationDidFinishLaunching'메서드를 실행하는 동안보기를로드 할 수있는 방법이 있는지 궁금 해서요. 지연은 탐색을 통해 중간 지점에있는 앱의 시작 지점에 있습니다.미리로드하기 UIView 아이폰 앱 실행 중 지연 최소화하기

대단히 감사합니다!

답변

1

가능한 한 빨리보기를로드 한 다음 백그라운드 스레드 또는 비동기 요청을 실행하여 데이터를 가져 오려고합니다.

처음로드하는 동안 응용 프로그램을 잠자기하는 것은 좋지 않습니다. SpringBoard가 로딩을 완료하는 데 30 초 이상 걸리는 모든 응용 프로그램을 종료 할 것이라고 저는 믿습니다.

이 앱이 사용자 (예를 들어 애니메이션 UIActivityView)

+0

30 초가 아닌 4 초 동안 잠자기 상태로 만들고 싶었습니다. 스플래시 화면을 표시하기에는 좋았지 만 비동기 로딩과 휠을 사용하기 때문에 좋았습니다. 나는 그것으로 대부분 만족한다. 도와 줘서 고마워! – Rossi

0

데이터를 비동기 적으로로드하는 것을 이미 고려 했습니까? 로드하는 동안 UI가 차단되지 않습니다. 예를 들어, 앱이 데이터를로드 할 때 멋진 로딩 휠을 표시 할 수 있습니다. 이것이 모든 좋은 앱이 어떻게 작동 하는지를 보여줍니다. 초기 뷰가 당신의 '데이터'보기보다 별도의 ViewController가있는 경우

+0

예를 볼 피드백없이 뭔가를 가지고 나쁜 사용자 경험이다,하지만 난 어쨌든 내 스플래쉬 화면을 표시하기 시작 부분에 응용 프로그램 잠을 만드는 중이라서 이 시간 동안 어떤 일을하도록 매끈 매끈해질 것이라고 생각했습니다. 그것은 나의 백업 계획이다 - 그래서 그것은 아직도 매우 시원하게 보일 수 있었다. – Rossi

0

, 당신은 AppDelegate에에 dataView로에 대한 참조를 추가하고 다음과 같이 할 수있다 : 뷰를로드

if (self.curAccountManager == nil) { 
    self.curAccountManager = [[accountManagerController alloc] initWithNibName:@"accountManager" bundle:[NSBundle mainBundle]]; 
    if (![self.curAccountManager isViewLoaded]) { 
     UIView *tmpView = self.curAccountManager.view; 
     tmpView = nil; 
    } 



} 

이 있습니다. 그러나로드하는 횟수가 많으면 사용자가 전환하면 제대로 반응하지 않을 수 있습니다. 위의 제안을 따르고 데이터보기에서 데이터를 비동기 적으로로드하여 적어도 사용자 상태 또는 부분 결과를 표시 할 수 있도록 제안합니다.

+0

그래, 고마워. - 나는 비동기 로딩과 함께 갈 것이다. 거의 완벽하다. 약간의 지연과 휠 회전이 있지만, 나는 그것을 극복 할 것이다. 도와 줘서 고마워! – Rossi