我正在调用doSaveItems:喜欢
[NSThread detachNewThreadSelector:@selector(doSaveItems:) toTarget:self withObject:aObject];
doSaveItems:方法有一个代码引用我的一个Outlets:
[uiProgressLedIdle setHidden:YES];
当然我在这个方法中设置了一个自动释放池。
问题是,当我使用detachNewThreadSelector调用此方法时[uiProgressLedIdle setHidden:YES];
对我的GUI没有影响:toTarget:withObject:如果我调用它[self doSaveItems:aObject]一切都很好,我的uiProgressLedIdle是隐藏的!
对我遗失的任何建议?
谢谢!
答案 0 :(得分:4)
UIKit不是线程安全的;总是从主线程拨打电话。
当然,您可以在iOS中使用多线程 - 但是您可以将下载和其他阻止请求推送到辅助线程。工作完成后,使用performSelectorOnMainThread:
通知负责更新ui对象的对象。这个调用将在下一次调用主线程的运行循环时发生。