我使用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];
}
有人可以帮我这个吗?我不知道在哪里看这是我第一次使用乐器。
答案 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!!!
}