1

我的 iOS 应用程序出现以下崩溃:

* -[GSFont retain]:消息发送到释放的实例 0x606c7c0

一些实验告诉我,这种崩溃发生在某些字体选择上,而不是其他字体。

我不明白为什么,而且很难知道崩溃实际发生在哪里。我已经设置了我在 XCode 中知道的所有标志以进行调试,但没有成功。我还尝试了“回溯”和“显示信息”,但都没有真正成功,如下所示:

(gdb) backtrace
#0  0x0149d057 in ___forwarding___ ()
#1  0x0149cf22 in __forwarding_prep_0___ ()
#2  0x00481ec7 in -[UILabel font] ()
#3  0x00483eec in -[UILabel _drawTextInRect:baselineCalculationOnly:] ()
#4  0x00481b40 in -[UILabel drawTextInRect:] ()
#5  0x0039b6eb in -[UIView(CALayerDelegate) drawLayer:inContext:] ()
#6  0x022069e9 in -[CALayer drawInContext:] ()
#7  0x022065ef in backing_callback ()
#8  0x02205dea in CABackingStoreUpdate ()
#9  0x02205134 in -[CALayer _display] ()
#10 0x02204be4 in CALayerDisplayIfNeeded ()
#11 0x021f738b in CA::Context::commit_transaction ()
#12 0x021f70d0 in CA::Transaction::commit ()
#13 0x022277d5 in CA::Transaction::observer_callback ()
#14 0x0150cfbb in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#15 0x014a20e7 in __CFRunLoopDoObservers ()
#16 0x0146abd7 in __CFRunLoopRun ()
#17 0x0146a240 in CFRunLoopRunSpecific ()
#18 0x0146a161 in CFRunLoopRunInMode ()
#19 0x01e60268 in GSEventRunModal ()
#20 0x01e6032d in GSEventRun ()
#21 0x0037242e in UIApplicationMain ()
#22 0x00001c62 in main (argc=1, argv=0xbfffef28) at /Users/.…../main.m:14
(gdb) display info 0x606c7c0
No symbol "info" in current context.
(gdb) 

任何帮助将不胜感激。

非常感谢。

4

1 回答 1

0

我刚刚经历了这一点。就我而言,它与 UITextView 有关。我发现您无法在设置字体之前设置文本,否则您会收到“-[GSFont retain]: message sent to deallocated instance...”崩溃。这适用于您手动创建或通过 xib 文件创建的 UITextView。如果确实在 xib 文件中使用 UITextView,请确保删除 xib 文件中文本视图的所有默认文本,因为在 xib 文件中定义时,ios 似乎将文本设置在字体之前。

更新..也刚刚遇到了一个事件,其中 xib 文件中的 UILabel 导致了同样的问题 - 即使没有默认文本。不完全确定 UILabel 的问题是什么,但在删除 UILabel 后,崩溃消失了。一次添加几个标签,然后崩溃就消失了(去图)。

希望这可以帮助。

于 2012-07-10T03:03:26.227 回答