-timeIntervalSinceNow的EXC_BAD_ACCESS错误

cms*_*cms 5 nsdate ios

希望有人可以帮助解决这个问题.尝试使用该-timeIntervalSinceNow方法时,我一直收到错误的访问错误.我在这个类中有一个变量NSDate *startDate,我已经添加了@property (nonatomic, retain) NSDate *startDate;

startDate 在这里的代码中使用:

    startDate = [NSDate date];
    updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 
                                                   target:self
                                                 selector:@selector(updatePlaybackPosition:)
                                                 userInfo:nil
                                                  repeats:YES];
}
Run Code Online (Sandbox Code Playgroud)

}

- (void)updatePlaybackPosition:(NSTimer *)timer {
   NSTimeInterval interval = [startDate timeIntervalSinceNow];
Run Code Online (Sandbox Code Playgroud)

程序到达 [startDate timeIntervalSinceNow]时会出现错误的访问错误.从我读过的关于这个主题的其他帖子来看,答案通常似乎与保留日期有关.所以,我不确定我错过了什么.任何帮助将非常感激!

Joe*_*Joe 5

NSDate的定时器被解雇之前你被自动释放.更新:确保使用您声明的属性而不是实例变量self..这将妥善处理你的保留.

self.startDate = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

然后

- (void)updatePlaybackPosition:(NSTimer *)timer {
   NSTimeInterval interval = [self.startDate timeIntervalSinceNow];
Run Code Online (Sandbox Code Playgroud)


hig*_*ted 0

[NSDate date]返回给你一个 autoreleased NSDate。如果您想在返回值的方法之外使用该值,则必须使用retain该值(并且release在使用完毕后也必须使用该值)。