Quick question, Instruments is reporting a leak here…
MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"myView" bundle:nil];
[self.navigationController pushViewController:myVC animated:YES]; //<<<<---- !00% leak according to Instruments
[myVC release];
I understand the myVC is retained by the nav controller, so I assume the nav controller releases them when the view is popped off the nav stack?
Also, there’s another tricky one in one of my loops, the static analyzer is reporting a potential leak here…
//Walk through the scheduled alarms and create notifications
NSMutableArray *fireDates = [[NSMutableArray alloc] init];
for(NSDate *fireDate in fireDates) //<<<<---- Static analyzer is reporting potential leak here
{
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
{
[fireDates release];
return;
}
localNotif.fireDate = fireDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = [NSString stringWithFormat:@"%@", alarm.Label];
localNotif.alertAction = NSLocalizedString(@"Launch", nil);
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.userInfo = infoDict;
localNotif.repeatInterval = NSWeekCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
}
[fireDates release];
Do I need to somehow release fireDate?
Thanks in advance for your help!
These snippets are both fine, as snippets go. Without seeing your full code it’s impossible to say if you don’t do something silly elsewhere. Do you ever release your navigationController (in your app delegate
-dealloc, likely)? That’s a leak that doesn’t mean much, but it could be what is triggering the first warning.Edit: with regards to the second snippet, the code looks fine (though the shortcut return case will bother some coders, who would rather see a
breakstatement). The static analyzer may be bothered by the lack of a[localNotif release](even though it’s obviously unnecessary) in the conditional return.