问题描述
|
我使用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];
}
有人可以帮我吗?我不知道这是我第一次使用Instruments。
解决方法
您要在释放格式化程序之前返回日期。
+ (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!!!
}
,将您的“ 3”陈述作为最后一条陈述。如您所写,never4ѭ永远不会被调用,因为该函数在执行该行之前就返回了。