我收到了一份关于我们的iPad应用程序崩溃的报告,附带了一条日志消息。日志消息的最后几行如下:
Aug 21 08:58:51 2TesterPad backboardd[26] <Warning>: CoreAnimation: timed out fence 25993
Aug 21 08:58:51 2TesterPad backboardd[26] <Warning>: CoreAnimation: updates deferred for too long
Aug 21 08:58:52 2TesterPad AppName[2428] <Warning>: CoreAnimation: failed to receive fence reply: 10004003
有人能告诉我这些日志消息的意思吗?我一直无法在网上找到任何有关此信息的好消息。
答案 0 :(得分:10)
这通常意味着核心动画操作已经排队,但已经等待太长时间并且超时。
要检查的一些事项:
-viewDidAppear
和-viewWillAppear
-viewDidAppear
如果您的UIScollView
有很多子视图,并且您为UIScrollView
设置了动画,则可能会发生这种情况。在这种情况下,它将为其所有子视图设置动画,即使这些子视图不在屏幕上也是如此。请参阅此答案:https://stackoverflow.com/a/10938889/257550。解决这个问题的一个解决方案是重新设计视图以使用UITableView
,以确保只有可见单元格中的子视图被动画化。
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"title",
mssage:@"message"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
});
答案 1 :(得分:2)
首先,我要感谢Michael G.Emmons的回答。这让我朝着正确的方向前进。
问题是,我在(listView)viewWillApear中调用服务,而在(detailsView)中我保存了详细信息(服务被调用),dismissAlert有动画,当回到列表屏幕时(再次)动画被称为。为了一些原因而堆积起来并抛出这个警告。该设备用于在Xcode控制台中挂起而没有任何日志消息,并且很难调试。
适用于iOS(7),在iPhone 6模拟器及以上版本中存在iOS 8问题。
我有类似的问题,我的控制台日志是: :CoreAnimation:超时围栏e025 :CoreAnimation:未能收到围栏回复:10004003
解决方案:我将代码(服务调用)从viewWillAppear适当移动到viewDidAppear并删除了不必要的(动画)。
它解决了我的问题。我希望它有所帮助。