gpt4 book ai didi

ios - [NSDate timeIntervalSinceReferenceDate] 上的 exc_bad_access

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:58 24 4
gpt4 key购买 nike

我从 [NSDate timeIntervalSinceReferenceDate] 中得到奇怪的行为。

我有以下功能:

-(void) insertRow{
NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];
if (timeNow - secondsSinceTableViewScroll <0.5){
[self insertRow];
return;
}

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:[self.itemsToFollow count] - 1];
[self.tableView insertSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
}

这是来自 ASIHTTPRequest requestFinished 的回调。如果我在代码中放置一个断点,它可以正常工作。如果我只是尝试运行代码,我会在该行得到一个 exc_bad_access:

NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];

secondsSinceTableViewScroll 是在 header 中声明并设置如下的 ivar:

 secondsSinceTableViewScroll = [NSDate timeIntervalSinceReferenceDate];

知道为什么我在没有断点的情况下得到 exc_bad_access 吗?

谢谢

我唯一能找到的东西

我是这样看时间的:

-(void) insertRow{
end = [NSDate timeIntervalSinceReferenceDate];
if(end-start < 0.05){
[self insertRow];
return;
}

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:[self.itemsToFollow count] - 1];
[self.tableView insertSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
}

我敢肯定某处它说您不能连续调用 timeIntervalSinceReferenceDate,这就是它崩溃的原因(无论如何,这种递归循环是一个非常糟糕的主意)。

所以使用 while 循环,或者更好的是 NSTimer。

谢谢你的帮助

最佳答案

改变

[self insertRow];

[self performSelector:@selector(insertRow) withObject:nil afterDelay:0];

关于ios - [NSDate timeIntervalSinceReferenceDate] 上的 exc_bad_access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7852865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com