Большая утечка в моем скрипте NSDateFormatter - PullRequest
2 голосов
/ 15 апреля 2011

Я использовал Инструмент, чтобы проверить, есть ли у меня какие-либо утечки в моем скрипте, и он пришел с парой, особенно в моем NSDateFormatter. Это говорит, что у меня было это:

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

Это мой метод, на который он указывает, и я не могу найти утечки:

+ (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];
}

Кто-нибудь может мне помочь с этим? Я понятия не имею, где искать это мой первый раз с инструментами.

Ответы [ 2 ]

5 голосов
/ 15 апреля 2011

Вы возвращаете дату перед выпуском форматера.

+ (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!!!
}
5 голосов
/ 15 апреля 2011

Сделайте ваше заявление return последним утверждением.Как вы уже написали, [nsDateFormatter release] никогда не вызывается, потому что функция возвращается до того, как сможет выполнить эту строку.

...