これがCocoaアプリのメモリリークを回避する正しい方法かどうか知りたいのですが。
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でコードを分析すると、メモリリークが発生する可能性があると表示されます。