Ios 访问文本字段时关于从其他线程获取锁的警告
我有一个名为Ios 访问文本字段时关于从其他线程获取锁的警告,ios,objective-c,multithreading,cocoa-touch,uitextfield,Ios,Objective C,Multithreading,Cocoa Touch,Uitextfield,我有一个名为\u passwordTextField的UITextField,在那里我隐藏了输入: [_passwordTextField setSecureTextEntry:YES]; 每次使用passwordTextField.text访问字段文本时,我都会看到以下警告: void _WebThreadLockFromAnyThread(bool),0x9077460:从主线程或web线程以外的线程获取web锁。不应从次线程调用UIKit 如何删除此警告?这与UITextField无
\u passwordTextField
的UITextField
,在那里我隐藏了输入:
[_passwordTextField setSecureTextEntry:YES];
每次使用passwordTextField.text
访问字段文本时,我都会看到以下警告:
void _WebThreadLockFromAnyThread(bool),0x9077460:从主线程或web线程以外的线程获取web锁。不应从次线程调用UIKit
如何删除此警告?这与
UITextField
无关。iOSUIKit
要求在主线程上而不是从后台线程对UI进行任何直接操作
如果您这样做,您的应用程序将不稳定,在某些情况下甚至可能崩溃。因此,规则不会从后台线程更新UIKit元素。请检查您的代码
如果您使用的是iOS>=4,则可以使用“执行此操作”:
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomething:1 b:2 c:3 d:4 e:5]; //changes UI method
});
更新:请再次检查您的代码。在处理线程问题时,您需要观察的不是出现此警告的哪一行,而是整个警告的内容。查看是否从主线程或后台线程调用整个方法。这与
UITextField
无关。iOSUIKit
要求在主线程上而不是从后台线程对UI进行任何直接操作
如果您这样做,您的应用程序将不稳定,在某些情况下甚至可能崩溃。因此,规则不会从后台线程更新UIKit元素。请检查您的代码
如果您使用的是iOS>=4,则可以使用“执行此操作”:
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomething:1 b:2 c:3 d:4 e:5]; //changes UI method
});
更新:请再次检查您的代码。在处理线程问题时,您需要观察的不是出现此警告的哪一行,而是整个警告的内容。查看是否从主线程或后台线程调用整个方法。是,在主线程中调用的所有代码,并且只有SecureTextEntry UITextField提供此警告,通常用于UITextField。是,在主线程中调用的所有代码,并且只有SecureTextEntry UITextField提供此警告,通常用于UITextField。[body setObject:_nameTextField.text forKey:@“username”];//请再次检查代码。在处理线程问题时,您需要观察的不是出现此警告的哪一行,而是整个方法。查看整个方法是从主线程还是从后台线程调用[body setObject:_nameTextField.text forKey:@“username”];//请再次检查您的代码。在处理线程问题时,您需要观察的不是出现此警告的哪一行,而是整个过程。查看整个方法是从主线程还是从后台线程调用的