Iphone NSDate内存泄漏问题
我在Iphone NSDate内存泄漏问题,iphone,objective-c,nstimer,Iphone,Objective C,Nstimer,我在NSDate发生内存泄漏。请检查下面的代码 -(void)myMethods:(NSDate *)currentTime{ [NSThread detachNewThreadSelector:@selector(mySecondMethods) toTarget:self withObject:nil]; } -(void) mySecondMethods{ NSDate * currentDateTime = [NSDate date];------->memor
NSDate
发生内存泄漏。请检查下面的代码
-(void)myMethods:(NSDate *)currentTime{
[NSThread detachNewThreadSelector:@selector(mySecondMethods) toTarget:self withObject:nil];
}
-(void) mySecondMethods{
NSDate * currentDateTime = [NSDate date];------->memory leak here
for (Event * event in array) {
if(![event checkOccur:currentDateTime]){
return;
} else {
[NSThread detachNewThreadSelector:@selector(start) toTarget:event withObject:nil];
}
}
}
如果在线程中调用任何方法,则必须使用自动释放池
-(void) mySecondMethods
{
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init];
NSDate * currentDateTime = [NSDate date];
for (Event * event in array) {
if(![event checkOccur:currentDateTime])
{
return;
}
else{
[NSThread detachNewThreadSelector:@selector(start) toTarget:event withObject:nil];
}
[pool drain];
}
嘿,谢谢4回复。我添加了nsautorelease池,但它显示nsautorelease池存在泄漏。您需要确保调用排水管。如果“返回”,它击中游泳池将不会排水。
-(void) mySecondMethods{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSDate * currentDateTime = [NSDate date];
for (Event * event in array) {
if(![event checkOccur:currentDateTime]){
return;
}
else{
[NSThread detachNewThreadSelector:@selector(start) toTarget:event withObject:nil];
}
}
[pool release];
}