Objective-C 中的 NSThread 错误
Posted
技术标签:
【中文标题】Objective-C 中的 NSThread 错误【英文标题】:NSThread Error in Objective-C 【发布时间】:2009-11-06 09:50:20 【问题描述】:我收到这个错误
bool _WebTryThreadLock(bool), 0x1b53d0:试图从主线程或web线程以外的线程获取web lock。这可能是从辅助线程调用 UIKit 的结果。现在崩溃了...
这是因为什么?
谢谢
【问题讨论】:
【参考方案1】:根据您提供的有限信息,我假设您从线程创建了一个 UIView(或它的任何子类)。
尝试改用以下方法:
[self performSelectorOnMainThread:<#(SEL)aSelector#>
withObject:<#(id)arg#>
waitUntilDone:<#(BOOL)wait#>];
== 编辑 ==
如果那是您的 appDelegate 从线程中获取回调,请尝试在您的回调之外添加一个新方法:
- (void) setMyImage:(UIImage*)theImage
...
myUIImageView.image = theImage;
...
并从 上面提到的线程:
- (void) callBackWithImage:(UIImage*)imageFromUrl
[self performSelectorOnMainThread:@selector(setMyImage:)
withObject:imageFromUrl
waitUntilDone:NO];
【讨论】:
在我的 viewDidLoad 方法中,我正在创建一个 UIImageView。然后我调用一个线程,它从 URL 获取图像,并在线程方法中为该 ImageView 设置图像。以上是关于Objective-C 中的 NSThread 错误的主要内容,如果未能解决你的问题,请参考以下文章
一条 Objective-C 消息被发送到一个已释放的“NSThread”对象(僵尸),地址为: