“wait_fences:未收到回复:10004003”?

“wait_fences:未收到回复:10004003”?

由于以下代码行,我第一次(也是第一次)加载了我的视图时出现了这个神秘的错误:

- (void)viewWillAppear:(BOOL)animated{
    [textField becomeFirstResponder];}

有一个明显的(约3 - 4秒,甚至在模拟器上)延迟,因为这使我的应用程序感到反应迟钝。有谁知道如何解决这一问题?我在Apple的网站上找不到任何文档,或者在Google或Google上找到任何解决方案。

奇怪的是,如果我把线放入-viewDidAppear:而不是-viewWillAppear:; 也就是说,不是打印错误仅在第一次键盘显示永不再,该错误打印第一次,但之后每次。这给我带来了很大的麻烦。


烙印99
浏览 468回答 3
3回答

白板的微信

覆盖-viewDidAppear:,而不是-viewWillAppear,并确保打电话[super viewDidAppear:]。当您不在屏幕上时(“将出现”),您不应该执行动画。和-viewDidAppear:文档说明,你必须调用super,因为他们有自己的事情要做。

慕雪6442864

我很快就遇到了类似的错误:解散模态视图更新主视图提出一个新的模态视图我注意到我只是在模拟器中而不是在设备上。另外,我陷入了无限循环。我的解决方案是推迟新模态视图的呈现。似乎快速更新视图层次结构导致Apple的代码中出现了一些竞争条件。考虑到这一点,试试这个:     - (void)viewDidAppear:(BOOL)animated{             [super viewDidAppear:animated];             [textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1];   }您可能在为尚未在屏幕上显示UITextField的键盘时遇到问题。这可能会导致类似我的问题。此外,为了以防万一,您在呈现键盘之前暂停给予层次结构更新时间。希望这可以帮助。

四季花海

检查您是否只与主线程上的UI进行交互。我wait_fences: failed to receive reply: 10004003坐在那里等待UIAlertView显示大约5秒,因为相关代码是在后台线程上执行的。您可以通过将代码放入块并将其发送到主线程来确保:dispatch_async(dispatch_get_main_queue(), ^{     if (!success) {         // Inform user that import failed         UIAlertView * importFailedAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorTitle5", @"Import failed")                                                                       message:NSLocalizedString(@"Error5", @"Something went wrong")                                                                      delegate:nil                                                             cancelButtonTitle:NSLocalizedString(@"OK", nil)                                                             otherButtonTitles:nil];         [importFailedAlert show];     }});
打开App,查看更多内容
随时随地看视频慕课网APP