在While循环中使用NSDate

Was*_*sim 4 cocoa-touch objective-c ios4 ios

我想在While循环中使用[NSDate date]获取当前日期.我通过这样做来实现这一点:

while (interval > 0.0) {

    NSDate *currentDate = [[NSDate alloc] init];  
    currentDate =  [NSDate date];  
    interval = (float) [newDate timeIntervalSinceDate: currentDate] / 60;  
    [currentDate release];
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么Memory泄漏表明存在大量内存泄漏.请指导我完成任务的正确方法.

Kon*_*kiy 6

在行中,NSDate *currentDate = [[NSDate alloc] init];您将创建一个新对象,您应该将其释放.在行中currentDate = [NSDate date];你不释放旧对象,你只做一个指向另一个对象的指针.在行中[currentDate release];你释放一个在循环的第二行创建的对象,这可能会导致错误(该对象被标记为autorelease one,iOS会为你清理它).您应该重写您的代码,如:

while (interval > 0.0) {
      NSDate *currentDate =  [NSDate date];
      interval = (float) [newDate timeIntervalSinceDate: currentDate] / 60;
}
Run Code Online (Sandbox Code Playgroud)