【发布时间】:2010-03-04 04:59:42
【问题描述】:
每当我将视图控制器推送到堆栈上,然后将其弹出时,我都会收到此错误:
*** -[CALayer retainCount]: message sent to deallocated instance <memory address>
这似乎发生在 dealloc 被弹出的视图控制器上调用之后,并且仅适用于该视图控制器。我确信 CALayer 与视图本身有关,因为我不使用它们。
有什么想法吗?
编辑: 这是回溯
(gdb) bt
#0 0x01fcd3a7 in ___forwarding___ ()
#1 0x01fa96c2 in __forwarding_prep_0___ ()
#2 0x01fc10e8 in CFGetRetainCount ()
#3 0x01cbc770 in CA::release_root_if_unused ()
#4 0x01cbc707 in x_hash_table_remove_if ()
#5 0x01cbc4ec in CA::Transaction::commit ()
#6 0x01cc4838 in CA::Transaction::observer_callback ()
#7 0x01fa5252 in __CFRunLoopDoObservers ()
#8 0x01fa465f in CFRunLoopRunSpecific ()
#9 0x01fa3c48 in CFRunLoopRunInMode ()
#10 0x027dd615 in GSEventRunModal ()
#11 0x027dd6da in GSEventRun ()
#12 0x0057cfaf in UIApplicationMain ()
#13 0x00002dec in main (argc=1, argv=0xbfffeed0)
【问题讨论】:
-
请将代码发布到您遇到此崩溃的确切位置。如果你知道如何使用 NSZombieEnabled 断点然后使用它,你就会知道我们崩溃的原因可能是什么。
-
@Man: "message sent to deallocated instance" 表示 Zombie 已启用。
-
问题是,没有代码崩溃的地方,我可以回溯一下。
标签: iphone objective-c calayer retain