更新到Xcode 5.1.1会导致iOS应用程序出现奇怪的崩溃

时间:2014-05-01 17:38:29

标签: ios xcode jquery-mobile cordova

不幸的是我将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),没有运气。

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:2)

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

触发的
opacity:.01

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

将其更改为:

opacity:0

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

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

答案 1 :(得分:0)

我有一个类似的问题,但它是由属性文本链接引起的。我最终不得不将“继续......”更改为“继续”