崩溃“消息发送到解除分配的实例0x606 ......”

时间:2012-06-12 08:59:19

标签: ios4 uifont

我的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) 

非常感谢任何帮助。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我刚刚经历过这个。在我的情况下,它与UITextView有关。我发现你在设置字体之前无法设置文本,或者你得到“ - [GSFont retain]:消息发送到解除分配的实例......”崩溃。这适用于您手动创建的UITextView或通过xib文件创建的UITextView。如果你在xib文件中使用UITextView,请确保删除文本视图的xib文件中的所有默认文本,因为在xib文件中定义时,ios似乎在字体之前设置文本。

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

希望这有帮助。