2010-05-20 135 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保留複製」。如果你 沒有做任何這些事情,你不需要發佈 。

推論也是如此。如果你做了這些,你有責任在適當的時候釋放對象。