Search code examples
iphonememorymemory-leaksinstruments

Major leak in my NSDateFormatter script


I used Instrument to check if I had any leaks in my script and it came with a couple particularly in my NSDateFormatter. It says I had it:

Leaked Object    #   Address         Size       Responsible Library   Responsible Frame
NSDateFormatter  70  < multiple >   1.09 KB    DAF                   +[XMLParser dateFromString:]

This is my method it points at and I cannot find any leak:

+ (NSDate *)dateFromString:(NSString *)dateString
{
    NSDateFormatter *nsDateFormatter = [[NSDateFormatter alloc] init];
    [nsDateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];
    NSDate *date = [nsDateFormatter dateFromString:dateString];
    return date;
    [nsDateFormatter release];
}

Can anybody help me with this one? I have no idea where to look this is my first time with Instruments.


Solution

  • You are returning date before releasing the formatter.

    + (NSDate *)dateFromString:(NSString *)dateString
    {
        NSDateFormatter *nsDateFormatter = [[NSDateFormatter alloc] init];
        [nsDateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];
        NSDate *date = [nsDateFormatter dateFromString:dateString];
        [nsDateFormatter release]; //Release here
        return date;
        //Code after a return does not get executed!!!
    }