1

我正在为自己创建一个 Cocoa 应用程序,但我发现了一个问题。我有两个 NSTextFields,它们作为 nextKeyViews 相互连接。当我使用内存泄漏检测工具运行此应用程序并在这两个文本框之间切换一段时间,输入一些文本等时,我开始泄漏内存。它向我展示了 AppKit 库负责,泄漏的对象是 NSCFStrings ,负责的帧是[NSEvent charactersIgnoringModifiers]and [NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]。我知道这是一个非常简短且不完整的描述,但是有人知道可能是什么问题吗?

另外,我不使用 GC,所以我release在 controllers 中使用我的实例变量dealloc。网点呢?因为IBOutlet它只是 Interface Builder 的一个标记,实际上并没有任何意义,我也应该release这样做吗?

4

1 回答 1

1

网点呢?由于 IBOutlet 只是 Interface Builder 的标记,实际上并没有任何意义,我是否也应该发布它们?

您的声明IBOutlet告诉您如何管理它...如果您声明它为retained然后@synthesize它,加载笔尖的过程将retain出口。因此你必须release这样做。

Andiih 创造了助记符 NARC

NARC:“新分配保留副本”。如果你没有做任何这些事情,你就不需要释放。

推论也是正确的。如果你做了任何这些,你有责任在适当的时候释放对象。

于 2010-05-20T20:13:33.620 回答