Re: how to create a NSMenuItem without memory leaks
Re: how to create a NSMenuItem without memory leaks
- Subject: Re: how to create a NSMenuItem without memory leaks
- From: Nick Zitzmann <email@hidden>
- Date: Mon, 16 May 2011 17:13:32 -0600
On May 16, 2011, at 5:04 PM, Martin Batholdy wrote:
> Hi,
>
> I create an NSMenu by myself;
>
> menu = [[NSMenu allocWithZone:menuZone] init];
>
> And depending on some data NSMenuItems get created.
>
>
> Now these menuItems get deleted and redrawn depending on some actions of the user with
>
> [menu removeItemAtIndex: x];
>
>
> I create the menu items like this:
>
> newItem = [[NSMenuItem alloc] init];
> [newItem initWithTitle:aTitle
> action:@selector(show:)
> keyEquivalent:@""];
> [menu addItem:newItem];
>
>
> Now is this a memory leak?
Yes, unless you turned on GC. Also, you are double-initializing the object, and under no circumstances should you ever do that.
> Because I don't release it anywhere. However the menu sometimes gets updated.
> So this code ([[NSMenuItem alloc] init]) is invoked several times without a release call anywhere.
>
>
> Is this better:
>
> NSMenuItem *newItem = [menu addItemWithTitle:aTitle action:@selector(show:) keyEquivalent:@""];
> ...
>
> since I don't own newItem it should get autoreleased, right?
Please re-read the memory management rules I sent you last time. The answer is in there.
Nick Zitzmann
<http://www.chronosnet.com/>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden