Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios EXC\u错误\u访问错误-TimeIntervalenceNow_Ios_Nsdate - Fatal编程技术网

Ios EXC\u错误\u访问错误-TimeIntervalenceNow

Ios EXC\u错误\u访问错误-TimeIntervalenceNow,ios,nsdate,Ios,Nsdate,希望有人能帮上忙。在尝试使用-timeIntervalSinceNow方法时,我不断遇到错误的访问错误。我在这个类中有一个名为NSDate*startDate的变量,我添加了@property(非原子,retain)NSDate*startDate startDate用于此处的代码: startDate = [NSDate date]; updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1

希望有人能帮上忙。在尝试使用
-timeIntervalSinceNow
方法时,我不断遇到错误的访问错误。我在这个类中有一个名为
NSDate*startDate
的变量,我添加了
@property(非原子,retain)NSDate*startDate

startDate
用于此处的代码:

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


当程序到达
[startDate TimeIntervalncesInnow]
时,会出现错误的访问错误。从我读过的关于这个话题的其他帖子中,答案似乎与保留日期有关。所以,我不确定我错过了什么。任何帮助都将不胜感激

[NSDate date]
返回自动删除的
NSDate
。如果您想在返回给您的方法之外使用该值,您必须
保留它(并且
处理完后释放它)。

您的
NSDate
在计时器启动之前自动释放更新:确保使用声明的属性而不是实例变量,方法是使用
self.
。这将为您妥善处理保留问题

self.startDate = [NSDate date];
然后

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

事实上,我最终找到了答案。似乎用它更好

-timeIntervalSinceDate:[NSDate date]

而不是从现在开始使用时间间隔。它基本上做了相同的事情,但出于某种原因-TimeIntervalencesNow每次都会出现错误的访问,但是上面的方法工作得很好。

谢谢,我将其更改为[[NSDate date]retain],这样可以阻止程序在计时器中重复前几次[startDate TimeIntervalencesInnow]时出现错误的访问,经过几次循环后,它仍然提供了一个不好的访问。此外,它返回的时间间隔为空。还有什么建议吗?我错过了你的财产申报单。您访问的不是属性,而是实例变量。我会更新我的答案。哦,谢谢,这很有意义。我已经做了改变,不过还是一样。。在更新计时器中循环一次,然后在那一行进行错误访问。非常感谢您的想法,关于它的任何进一步想法,请在startDate上查看您的代码,除了dealloc之外,还有其他我能想到的事情。
-timeIntervalSinceDate:[NSDate date]