gpt4 book ai didi

cocoa NSOutlineView 错误 - [NSCFTimer copyWithZone :]: unrecognized selector sent to instance

转载 作者:行者123 更新时间:2023-12-03 17:32:50 25 4
gpt4 key购买 nike

我正在使用带有函数的 NSOutlineView

- (BOOL)outlineView:(NSOutlineView *)outlineView
isGroupItem:(id)item

已定义,因此它提供组行 GUI 外观。当我添加根项目时,它工作正常。当我将一个项目添加到根的子数组并展开它时,它工作正常。如果我签约该项目,则会记录以下错误:

[NSCFTimer copyWithZone:]: unrecognized selector sent to instance

如果通过切换到另一个应用程序来停用应用程序窗口,我还会收到 EXC_BAD_ACCESS 错误。我使用调试器尝试查找我的函数之一可能出错的位置,但堆栈跟踪仅显示我未创建的函数(RunCurrentEventLoopInMode、CFRunLoopRunSpecific、handleWindowNeedsDisplay 等)有谁知道我的错误在哪里(s)可能是?

最佳答案

听起来像是一个物体正在过早死亡。当稍后使用相同的指针分配新对象,然后某个对象尝试向旧对象发送消息时,您会得到“发送到实例的无法识别的选择器”异常(在所示的示例中,转世是一个 NSTimer 并且该消息尝试发送给旧对象)发送前一个对象是copyWithZone:)。当对象只是垃圾内存时,您会遇到 EXC_BAD_ACCESS 崩溃。

通过在启用 Zombies 仪器的情况下在 Instruments 下运行您的应用程序来进行调试。该对象不会死亡,而是成为僵尸对象。当有东西试图向僵尸发送消息时,僵尸会发出呻吟声(形象地说),这将在 Instruments 的时间轴中显示为标志。您可以单击该标志中的按钮来查看该对象的历史记录,包括其所有保留和释放。

关于 cocoa NSOutlineView 错误 - [NSCFTimer copyWithZone :]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com