2010-05-20 101 views
1

我为自己创建了一个Cocoa应用程序,并且发现了一个问题。我有两个NSTextFields,它们作为nextKeyViews相互连接。当我运行这个应用程序与内存泄漏检测工具和标签通过这些2文本框一段时间,输入一些文字等,我开始泄漏内存。它向我展示了AppKit库是负责任的,泄漏的对象是NSCFStrings,负责框架是[NSEvent charactersIgnoringModifiers][NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]。我知道这是一个相当简短和不完整的描述,但是有没有人有任何想法可能是什么问题?Objective C内存泄漏

另外,我不使用GC,所以我release我的实例变量在控制器dealloc。什么关于网点?由于IBOutlet只是界面生成器的一个标记,实际上并不意味着什么,我是否也应该release

回答

1

什么关于网点?由于IBOutlet只是Interface Builder的标志,实际上并不意味着什么,我是否也应该释放它们?

你的IBOutlet的声明告诉你如何去管理它。如果你将它声明为retained,然后@synthesize它,装载笔尖将retain出口的过程。所以你必须release吧。

Andiihcoined the mnemonicNARC

NARC: “新的Alloc保留复制”。如果你 没有做任何这些事情,你不需要发布 。

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