OGeek|极客世界-中国程序员成长平台

标题: ios - 更新到 Xcode 5.1.1 导致 iOS 应用程序奇怪的崩溃 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:37
标题: ios - 更新到 Xcode 5.1.1 导致 iOS 应用程序奇怪的崩溃

不幸的是,我将 Xcode 自动更新到版本 5.1.1 (5B1008),现在我的一个应用程序以一种非常奇怪的方式崩溃了。

该应用程序是 PhoneGap 3.4 (+ jQuery Mobile 1.3.1) 混合应用程序,当我尝试打开包含 ~20 JQM 复选框的 JQM 页面时发生崩溃。

崩溃发生在 WebCore WebCore::RenderThemeIOS::paintCheckboxDecorationsWebThread 调用的 CoreGraphics CGPathAddLineToPoint 中,我猜当 WebCore 尝试在 JQM 页面上呈现复选框。

控制台显示:

断言失败CGFloatIsValid(x) && CGFloatIsValid(y)),函数 void CGPathAddLineToPoint(CGMutablePathRef, const CGAffineTransform *, CGFloat, CGFloat),文件 Paths/CGPath.cc,第 224 行。 (lldb)

任何其他不包含复选框的 JQM 页面都会正确显示,并且不会使应用程序崩溃。

编辑:有趣的是,崩溃是由这行 Javascript 触发的:

$('#my_checkbox').prop("checked", my_boolean_value).checkboxradio("refresh");

如果我禁用它,则会显示 JQM 页面。但是,即使上面的行被禁用,如果我单击任何复选框,它也会再次崩溃,并显示与上面相同的 Assertion failed 消息。 (我猜是因为 JQM 切换了检查/未检查类。)

我已经执行了我能想到的所有技巧(清理、禁用调试器、重新启动、重新安装 Xcode),但没有运气。

关于如何解决这个问题的任何想法?



Best Answer-推荐答案


我发现了以下非常烦人的事实:崩溃是由一个

触发的
opacity:.01

指令,附加到我的 CSS 中的 JQM .ui-checkbox 类。

改成:

opacity:0

防止崩溃(我仍然不知道是由于 Xcode 错误还是 iOS 错误)。

有趣的是,将 any 值设置为大于 0 会触发崩溃。

关于ios - 更新到 Xcode 5.1.1 导致 iOS 应用程序奇怪的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413205/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4