不幸的是,我将 Xcode 自动更新到版本 5.1.1 (5B1008),现在我的一个应用程序以一种非常奇怪的方式崩溃了。
该应用程序是 PhoneGap 3.4 (+ jQuery Mobile 1.3.1) 混合应用程序,当我尝试打开包含 ~20 JQM 复选框的 JQM 页面时发生崩溃。
崩溃发生在 WebCore WebCore::RenderThemeIOS::paintCheckboxDecorations 在 WebThread 调用的 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-推荐答案 strong>
我发现了以下非常烦人的事实:崩溃是由一个 触发的
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/
|