iOS7에서 이상한 동작이 발견되었습니다. 나는 무거운 하중을 처리하는 dispatch_async
백그라운드 스레드가 있고이 스레드에서 UI를 업데이트하려고합니다. 아이폰 OS 8 일 및 제안하지만, iOS7에 테스트 장치에서 실행으로 위의 코드가 작동 위dispatch_async (dispatch_get_main_queue(),^{}); 배경에서 스레드가 느림 iOS7에서
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[self heavyFunction];
dispatch_async(dispatch_get_main_queue(), ^{
[self updateUI];
});
});
은 (아이폰 4S) dispatch_async(dispatch_get_main_queue(), ^{});
에 대한 호출은 매번 사초 소요 : 그래서 다음처럼했다. 나는 이미 업데이트와 heavy_function을 가져 왔고 같은 동작이 계속 나타납니다. 그런 다음 나는 최소한의 예를 만들어 냈다. 그래서 나는 다른 것이 iOS7에서 내 main_queue를 막고 있을지도 모른다고 생각했지만 이것이 무엇인지 알아낼 수 없다. [self heavyfunction];
가 끝날 때까지이 ViewController에서 발생하는 다른 UI 관련 작업은 없습니다.
모두 기본 SDK 9.3 및 배포 목표 7.0이 포함 된 XCode 7.3.1로 컴파일됩니다.
누구나 이미이 동작이 있었고 여기에서 차단할 수있는 방향으로 나를 가리킬 수 있습니까?
시간 프로파일 러 도구를 사용해 보셨습니까? – Paulw11
네,하지만 저는 단지 [UIView (Hierachy) layoutBelowIfNeeded]'를 약 2 초 동안 두 번 반복합니다. –
충돌하는 제약 조건에 대한 경고가 표시됩니까? – Paulw11