【问题标题】:iOS UICalloutBar crashiOS UICalloutBar 崩溃
【发布时间】:2014-01-18 09:05:14
【问题描述】:

我的应用收到以下崩溃报告。关于如何调试这样的东西有什么想法吗?

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x417d37f6

Thread 0: Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x39048b26 objc_msgSend + 5
1  UIKit                          0x310643ed +[UICalloutBar fadeSharedCalloutBarIfNeededForTouchInView:window:] + 80
2  UIKit                          0x31064365 -[UITouchesEvent _dismissSharedCalloutBarIfNeeded] + 228
3  UIKit                          0x3102cf87 _UIApplicationHandleEventQueue + 7070
4  CoreFoundation                 0x2e882183 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
5  CoreFoundation                 0x2e881653 __CFRunLoopDoSources0 + 206
6  CoreFoundation                 0x2e87fe47 __CFRunLoopRun + 622
7  CoreFoundation                 0x2e7eac27 CFRunLoopRunSpecific + 522
8  CoreFoundation                 0x2e7eaa0b CFRunLoopRunInMode + 106
9  GraphicsServices               0x334de283 GSEventRunModal + 138
10 UIKit                          0x3108e049 UIApplicationMain + 1136
11 App                            0x000d441f main (main.m:6)

我没有在我的代码中的任何地方使用 UICalloutBar。它似乎发生在各种设备上,但仅在 iOS7 中并且始终在应用程序集中时发生。

我见过这个,但它并没有真正帮助:What is UICalloutBarButton, and why does it make my app crash?

【问题讨论】:

  • 你在项目中启用了你的僵尸吗?
  • 这些是来自我的生产应用程序的崩溃报告,其中未启用它。我可以在我的开发环境中启用它们,但我自己没有看到这种崩溃。
  • 这在 iOS6 中运行良好吗?您是否已将目标/选择器添加到所有调出按钮?你确定选择器也可用吗?
  • 我没有在代码中的任何地方使用 UICalloutBar。我想我应该提到这一点。更新问题。
  • 您在使用 ARC 吗?似乎有一个对象没有被正确释放或保留。我将检查僵尸对象以检测问题发生的位置。

标签: ios debugging crash


【解决方案1】:

我提出此建议的依据是,您遇到了与触摸相关的崩溃,也与用户界面的关闭有关,并且您的客户正在生产构建,因此没有机会专门检测系统来挖掘问题。

我建议使用您的应用并记下触摸事件导致对话框、菜单或弹出框被关闭的所有位置。然后计算出哪些其他触摸事件可以产生相同的效果,以及哪些触摸事件被监听,但在逻辑上不是您期望用户执行的操作。

例如,对于弹出框,您通常触摸弹出框的菜单项,它就会消失。但是再次按下弹出框标题(将其关闭),或者在弹出框之外按下(这意味着关闭弹出框)呢?

另一个例子是用户应该在菜单中做出选择,但有一个后退按钮,他们可以按下后退按钮。您可能不会以这种方式使用系统,但用户可能会在这些地方按下。

最后,如果你做用户界面自动化,你可以试试 Monkey Testing。也就是说,编写一个脚本(或下载其中一个开源实现),它会随机点击屏幕。让它在你的应用程序上运行,看看它有什么变化——通常它会在甚至强大的应用程序中发现触摸问题。

【讨论】:

    猜你喜欢
    • 2011-08-26
    • 2017-06-12
    • 2018-03-27
    • 2021-04-17
    • 2013-05-13
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多