void _WebThreadLockFromAnyThread(bool)
,0x4c60190
:从主线程或Web线程以外的线程获取Web锁。UIKit
不应该从辅助线程调用。目标C,这是什么警告?
如果我尝试从UITextView
获取文本,我会收到此警告消息。
void _WebThreadLockFromAnyThread(bool)
,0x4c60190
:从主线程或Web线程以外的线程获取Web锁。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)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
作为一个例子,主线程运行,
- (void)UIControlCode
{
}
- (void)processingCodeInOtherThread
{
[self performSelectorOnMainThread:@selector(UIControlCode) withObject:nil waitUntilDone:NO];
}
非常感谢。我解决了这个问题。问题是我试图从不是来自主线程的另一个线程访问UITextview。 – codereviewanskquestions 2011-03-06 01:18:46
发布相关的代码将是一个很大的帮助。 – DVG 2011-03-05 09:00:51