내 Mac 앱이 연결 및 데이터 가져 오기에 약 10 초가 소요되는 원격 데이터베이스에 연결됩니다. 이 시간은 프레임 워크 초기화 및 네트워크 대기 시간 등으로 인해 단축 될 수 없습니다.코코아 앱 부팅 스플래시 화면
초기 앱 실행 시간부터 시작하여 앱 준비가 완료 될 때까지 스플래시 화면을 넣으려는 경우입니다.
나는 applicationWillFinishLaunching:(NSNotification *)notification
메서드를 시도했지만 응용 프로그램이 올라올 때까지 스플래시 화면을 표시하지 않습니다. 이는 AppDelegate가 마지막으로 생성 된 것으로 보이고 App 컨트롤러가 전체 응용 프로그램 전에 완전히 초기화됩니다. 지연이있는 곳인 "발사 마무리".
독 타일이 튀는 것을 시작하자마자이 창을 호출 할 수있는 방법이 있습니까?
나는 최적화를 위해 격추 될 것이라는 것을 알고 있지만,이 프로세스를 빠르게하기 위해 더 이상의 조치를 취할 수는 없습니다.
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
// time consuming task
});
UPDATE :
당신이 dispatch_get_main_queue를 호출 할 수 있습니다에) (응용 프로그램 위양이 이동할 수 있도록
이 시간 소모적 인 초기화 프로세스의 호출을 'applicationDidFinisLaunchingWithOptions'로 옮길 수 없습니까? 그때 당신은 먼저 스플래시 화면이나 모든 종류의 진행률 막대가 들어있는 모달보기를 표시 한 다음 초기화 프로세스를 시작할 수 있습니다. 이렇게함으로써 총 초기화 시간은 적어도 크게는 변하지 않아야하지만, 사용자가 훨씬 빠르게 시작하고 그의 진행은 진행 표시 줄 (또는 회 전자 또는 기타)에 의해 충족됩니다. –
@HermannKlecker 시도해 볼 수는 있지만 AppDelegate를 사용하여이 메서드를 계속 사용할 수 있습니다. '느린 호출'은 데이터를 app 컨트롤러가 소유 한 배열에 넣는 모델 객체에 포함되어 있습니다. – Steve
더 나은 방법은 UI를 표시하고 연결이 필요한 UI 요소를 비활성화하고 진행 표시기 및 메시징을 표시하는 것입니다. uchuugaka가 – uchuugaka