> Also, you are double-initializing the object, and under no circumstances 
> should you ever do that.

Ok, thanks for pointing that out ... I still overlook these things ...


Ok ... now I tried to reread the official documents ...


Is this how you would do it properly:

newItem = [[NSMenuItem alloc]  initWithTitle:aTitle action:@selector(show:)  
keyEquivalent:@""];

[menu addItem:newItem];
// with the addItem command newItem gets retained by 1. So I can release it:

[newItem release];


and [menu removeItemAtIndex: x]; should destroy the object newItem points to 
because the retain count decreases to 0.






On 17.05.2011, at 01:13, Nick Zitzmann wrote:

> 
> 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 (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to