2011-03-05 3 views
1

void _WebThreadLockFromAnyThread(bool), 0x4c60190 : 주 스레드 또는 웹 스레드 이외의 스레드에서 웹 잠금을 얻습니다. 보조 스레드에서 UIKit을 호출하면 안됩니다.목표 C,이 경고는 무엇입니까?

UITextView에서 텍스트를 가져 오려고하면이 경고 메시지가 나타납니다.

+2

예를 들어 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

같은 방법을 사용하여 메인 스레드에서 실행하는 코드를 강제 할 수 있습니다. – DVG

답변

2

다른 스레드를 생성하고 그 안에 UIKit 메서드를 호출 했습니까? + (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument 또는 - (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg 과 같은 메서드는 새 스레드를 생성합니다.

UI 관련 코드는 주 스레드에서만 사용해야합니다. 많은 UI 코드가 멀티 스레딩을 많이 사용하기 때문에 모든 스레드에서 UI 코드를 호출하면 쉽게 관리 할 수없는 교착 상태가 발생합니다. 따라서 대부분의 UI 프레임 워크에는이 규칙이 있습니다.

당신은 큰 도움이 될 것입니다 관련 코드를 게시,

- (void)UIControlCode 
{ 
} 
- (void)processingCodeInOtherThread 
{ 
    [self performSelectorOnMainThread:@selector(UIControlCode) withObject:nil waitUntilDone:NO]; 
} 
+0

고마워. 나는 문제를 해결했다. 문제는 주 스레드가 아닌 다른 스레드에서 UITextview에 액세스하려고했습니다. – codereviewanskquestions