我正在使用kal日历应用程序。我在下面的代码中得到内存泄漏。任何人都可以告诉我我做错了什么。
holidayjsondatasource.m
...
for (int i=0; i<[calendar_value count]; i++) {
NSDate *d = [[fmt dateFromString:[[calendar_value objectAtIndex:i] valueForKey:@"EventDate"]] retain];
[holidays addObject:[CalendarDetails
holidayNamed:[[calendar_value objectAtIndex:i] valueForKey:@"UnitName"]
duration_date:[[calendar_value objectAtIndex:i] valueForKey:@"Checkinout"]
status:[[calendar_value objectAtIndex:i] valueForKey:@"EventType"]
date:d des:[[calendar_value objectAtIndex:i] valueForKey:@"Description"]
bid:[[calendar_value objectAtIndex:i] valueForKey:@"ID"]]];
[d release];
}
}
...
日历详情。
...
+ (CalendarDetails*)holidayNamed:(NSString *)aname duration_date:(NSString *)aduration_date status:(NSString *)astatus date:(NSDate *)adate bid: (NSString *)abid note:(NSString *)anote image_status:(NSString *)aimage_status lmd:(NSString *)almd
{
CalendarDetails *cal =[ [[CalendarDetails alloc] initWithName:aname duration:aduration_date status:astatus date:adate bid:abid note:anote image_status:aimage_status lmd:almd] autorelease];
return cal;
}
........
谢谢&amp;问候, Sathish所在
答案 0 :(得分:0)
如果您发送任何控制台输出并告诉我们您确切知道您有内存泄漏,这将有所帮助。
看起来不像是过度释放导致的内存泄漏:你正在调用[d release]
,但你不应该以这种方式释放你的NSDate
- 你得到的就是这样的它是自动释放的方式。阅读可可内存管理指南。
顺便说一句,使用更好的变量名称会使事情变得更容易。例如。 date
代替d
。