我想知道這是否是避免Cocoa應用程序中內存泄漏的正確方法。更新NSMenu中的項目時的內存管理
我的應用程序有更新的NSMenu
的項目的方法:
//Remove and Release old Status Scan Menu:
if ([statusMenuScansMenu numberOfItems] !=0) {
for (NSMenuItem *menueItemToBeReleased in [statusMenuScansMenu itemArray]) {
[statusMenuScansMenu removeItem:menueItemToBeReleased];
[menueItemToBeReleased release];
}
}
//New Status Scan Menu:
for (MyObject* myObject in myArray) {
NSMenuItem * scanMenuItem = [[NSMenuItem alloc] init];
[scanMenuItem setTitle:[myObject name]];
[statusMenuScansMenu addItem:scanMenuItem];
}
正如你所看到的,增加新的項目之前,我刪除所有以前的項目和發送release
給他們。然後我添加新的。
這是內存管理的最佳方式嗎?
如果我在Xcode 4.1中分析我的代碼,它說有潛在內存泄漏。
凡沒有說潛在的內存泄漏是什麼? – bryanmac