2013-03-12 2 views
6

Xcode는 디버그 탐색기에서 스레드를 보여줍니다.Xcode 스레드 1 : 항상 메인 UI 스레드입니까?

는 그들은 번호가 매겨집니다 : Thread 1, Thread 2

나는 그것이 메인 UI 스레드가 있음을 올바른 가정인가 스레드 1에 항상임을 알? FacebookAFNetworking과 같은 libs/SDK를 사용하며 콜백 및 대리인이 있습니다. 그러나 스레드 안전성이 항상 올바르게 문서화되지는 않습니다.

+1

그렇지 않으면 대부분의 앱이 배경 스레드에서 UIKit을 사용하려고 할 때 화염에 빠질 것입니다. – CodaFi

답변

7

WWDC 비디오 중 하나 (2011 년부터 생각합니다)에서 UIKit 내부가 스레드 1이 UI라고 가정한다고 엔지니어가 들었습니다.

그렇습니다. "간단히"우수 사례가 아니며 구체적인 기술 종속성이 있다고 생각합니다.

구체적인 문서에서 "공식적인"진술을 쉽게 찾을 수 없습니다. 그러나 나는 그것이 그것보다 더 기초적인 것이기 때문에 그것이라고 생각한다. 예를 들어, 메인 쓰레드의 역할 캐주얼 언급 이런 종류의 모든 the iOS App Programming Guide에서 촬영 장소 (이상 (예를 들어, 아이폰 OS (101))

앱이 터치 이벤트 및 기타 사용자의 입력을 처리하는 곳의 주요 스레드이다.

관련 문제