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