我有一个名为UITextField
的{{1}},我隐藏了输入:
_passwordTextField
每次我使用[_passwordTextField setSecureTextEntry:YES];
访问字段的文本时,都会看到此警告:
void _WebThreadLockFromAnyThread(bool),0x9077460:从主线程或Web线程以外的线程获取Web锁。不应该从辅助线程调用UIKit。
如何删除此警告?
答案 0 :(得分:3)
这与UITextField
无关。 iOS UIKit
要求在主线程上完成对UI的任何直接操作。不是来自后台线程。
如果您这样做,您的应用将会不稳定,在某些情况下甚至可能会崩溃。因此,规则不会从后台线程更新UIKit元素。请检查您的代码。
如果您使用的是iOS> = 4,则可以使用GCD代替:
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomething:1 b:2 c:3 d:4 e:5]; //changes UI method
});
更新:请再次检查您的代码。在处理线程问题时,不需要观察此警告发生在哪一行,但您需要完整地查看。看看整个方法是从主线程还是后台线程调用..