不幸的是我将Xcode自动更新到版本5.1.1(5B1008),现在我的一个应用程序以一种非常奇怪的方式崩溃。
该应用程序是PhoneGap 3.4(+ jQuery Mobile 1.3.1)混合应用程序,当我尝试打开包含~20 JQM复选框的JQM页面时发生崩溃。
崩溃发生在CoreGraphics CGPathAddLineToPoint
中由WebCore WebCore::RenderThemeIOS::paintCheckboxDecorations
调用的WebThread
中,我想当WebCore尝试在JQM页面上呈现复选框时。
控制台显示:
Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)), function void CGPathAddLineToPoint(CGMutablePathRef, const CGAffineTransform *, CGFloat, CGFloat), file Paths/CGPath.cc, line 224.
(lldb)
任何其他不包含复选框的JQM页面都会正确显示,并且不会使应用程序崩溃。
编辑:有趣的是,崩溃是由这行Javascript引发的:
$('#my_checkbox').prop("checked", my_boolean_value).checkboxradio("refresh");
如果我禁用它,则显示JQM页面。但是,即使上面的行已被禁用,如果我点击任何复选框,它也会再次崩溃,并显示相同的上述Assertion failed
消息。 (我猜是因为JQM切换了check / unchecked类。)
我已经完成了我能想到的所有技巧(干净,禁用调试器,重启,重新安装Xcode),没有运气。
有关如何解决此问题的任何想法?
答案 0 :(得分:2)
我发现了以下非常恼人的事实:崩溃是由
触发的opacity:.01
指令,附加到我的CSS中的JQM .ui-checkbox
类。
将其更改为:
opacity:0
防止崩溃(我仍然不知道是因为Xcode错误还是iOS错误)。
有趣的是,将任何值设置为大于0
会触发崩溃。
答案 1 :(得分:0)
我有一个类似的问题,但它是由属性文本链接引起的。我最终不得不将“继续......”更改为“继续”