我的NSDateFormatter脚本发生了重大泄漏

时间:2011-04-15 16:54:45

标签: iphone memory memory-leaks instruments

我使用Instrument来检查我的脚本中是否有任何泄漏,特别是在我的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 个答案:

答案 0 :(得分:5)

return语句作为最后一个语句。正如您所写,[nsDateFormatter release]永远不会被调用,因为函数在执行该行之前就会返回。

答案 1 :(得分:5)

您在发布格式化程序之前返回日期。

+ (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!!!
}