NSDate проблемы утечки памяти - PullRequest
4 голосов
/ 05 июля 2011

У меня утечка памяти на 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];       
        }
    }
}

Ответы [ 2 ]

7 голосов
/ 05 июля 2011

Если вы вызываете какой-либо метод в потоке, вы должны использовать пул автоматического освобождения.

-(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];
}
0 голосов
/ 05 июля 2011
-(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];
  }
...