void _WebThreadLockFromAnyThread(bool)
,0x4c60190
: 주 스레드 또는 웹 스레드 이외의 스레드에서 웹 잠금을 얻습니다. 보조 스레드에서UIKit
을 호출하면 안됩니다.목표 C,이 경고는 무엇입니까?
UITextView
에서 텍스트를 가져 오려고하면이 경고 메시지가 나타납니다.
void _WebThreadLockFromAnyThread(bool)
,0x4c60190
: 주 스레드 또는 웹 스레드 이외의 스레드에서 웹 잠금을 얻습니다. 보조 스레드에서UIKit
을 호출하면 안됩니다.목표 C,이 경고는 무엇입니까?
UITextView
에서 텍스트를 가져 오려고하면이 경고 메시지가 나타납니다.
다른 스레드를 생성하고 그 안에 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];
}
고마워. 나는 문제를 해결했다. 문제는 주 스레드가 아닌 다른 스레드에서 UITextview에 액세스하려고했습니다. – codereviewanskquestions
예를 들어
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
같은 방법을 사용하여 메인 스레드에서 실행하는 코드를 강제 할 수 있습니다. – DVG