iPhone应用程序崩溃:断言失败函数evict_glyph_entry_from_strike,文件字体/ CGFontCache.c

时间:2009-12-30 08:01:04

标签: iphone debugging crash

这是随机发生的。我没有删除任何tableview单元格,即回溯信息:

Assertion failed: (d->entry[identifier.glyph] == g), function evict_glyph_entry_from_strike, file Fonts/CGFontCache.c, line 810.
Program received signal:  “SIGABRT”.
(gdb) bt
#0  0x97da5972 in __kill ()
#1  0x97da5964 in kill$UNIX2003 ()
#2  0x97e38ba5 in raise ()
#3  0x97e4ec5c in abort ()
#4  0x97e3b804 in __assert_rtn ()
#5  0x0037fe0e in evict_glyph_entry_from_cache ()
#6  0x003226aa in expire_glyphs_nl ()
#7  0x00322645 in CGFontCacheUnlock ()
#8  0x00321fef in CGGlyphLockUnlock ()
#9  0x0240f9b7 in ripc_DrawGlyphs ()
#10 0x0031b0d4 in draw_glyphs ()
#11 0x0031a91f in CGContextShowGlyphsWithAdvances ()
#12 0x35814178 in WebCore::Font::drawGlyphs ()
#13 0x35813da5 in WebCore::Font::drawGlyphBuffer ()
#14 0x35813aca in WebCore::Font::drawSimpleText ()
#15 0x35813760 in drawAtPoint ()
#16 0x3581307e in -[NSString(WebStringDrawing) _web_drawAtPoint:forWidth:withFont:ellipsis:letterSpacing:includeEmoji:] ()
#17 0x3090d2e9 in -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:letterSpacing:includeEmoji:] ()
#18 0x3090cfe3 in -[NSString(UIStringDrawing) drawAtPoint:forWidth:withFont:lineBreakMode:] ()
#19 0x3093d853 in -[UINavigationItemView drawText:inRect:] ()
#20 0x3093a96b in -[UINavigationItemButtonView drawRect:] ()
#21 0x3091ff61 in -[UIView(CALayerDelegate) drawLayer:inContext:] ()
#22 0x0060daeb in -[CALayer drawInContext:] ()
#23 0x0060d8f9 in backing_callback ()
#24 0x0060d1b4 in CABackingStoreUpdate ()
#25 0x0060c3cc in -[CALayer _display] ()
#26 0x0060bf56 in CALayerDisplayIfNeeded ()
#27 0x0060b3bd in CA::Context::commit_transaction ()
#28 0x0060b022 in CA::Transaction::commit ()
#29 0x006132e0 in CA::Transaction::observer_callback ()
#30 0x30245c32 in __CFRunLoopDoObservers ()
#31 0x3024503f in CFRunLoopRunSpecific ()
#32 0x30244628 in CFRunLoopRunInMode ()
#33 0x32044c31 in GSEventRunModal ()
#34 0x32044cf6 in GSEventRun ()
#35 0x309021ee in UIApplicationMain ()

2 个答案:

答案 0 :(得分:1)

https://discussions.apple.com/message/8213970?messageID=8213970表示它似乎与在动画块中使用函数有关...

just.do.it评论了一半:

  

嗨,也许你可以告诉我们一些代码   发生这种情况。

     

我有这个断言失败   偶尔在不同的应用程序中。目前   我可以说,似乎不是   使用多个的好主意   以下方法:

     

deleteRowsAtIndexPaths:withRowAnimation:
  deleteSections:withRowAnimation:
  insertRowsAtIndexPaths:withRowAnimation:
  insertSections:withRowAnimation:

     

在beginUpdate / endUpdates中   块。

     

至少似乎也是如此   有问题的是打电话给其中一个   内有动画的方法   一个自己的数据源方法   伴随着动画如   的tableView:moveRowAtIndexPath:toIndexPath:

答案 1 :(得分:0)

在我看来,UINavigationItems上的文字绘图中存在一个错误。

这些API调用中的一些似乎在框架中非常深入,并且是您甚至无法访问的内容,因此我不认为这直接是您的错。

向Apple提交有关iPhone SDK和向UINavigationItems绘制文本的错误报告或包括此回溯可能是明智之举。