Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Objective C memory leak issue

The Leaks instrument tells me that I have a leak in this code fragment. Why is this so?

This code fragment is in viewDidLoad().

UINavigationItem *navItem=[self navigationItem];

UIBarButtonItem *addFeed = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addFeed)];
[navItem setRightBarButtonItem:addFeed]; // leaks says that 128 bytes leaked
[addFeed release];

UIBarButtonItem *reload = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh  target:self action:@selector(reload)];
[navItem setLeftBarButtonItem:reload]; // leaks says that 128 bytes leaked here too !
[reload release];
[navItem release];

1 Answers

You should not be releasing navItem. You did not alloc/retain/new/create it, so you do not release it.

Other than that, your code looks fine. Is that everything in the method?

like image 153
Dave DeLong Avatar answered Dec 10 '25 01:12

Dave DeLong



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!