在NSDate上调用TimeIntervalSinceNow后出错?

时间:2011-03-14 16:55:55

标签: iphone objective-c cocoa-touch nsdate

我正在使用以下方法来确定两个NSDate之间的天数:

- (int)daysBetweenDate:(NSDate *)start andDate:(NSDate *)end {

    NSTimeInterval lastDiff = [start timeIntervalSinceNow];
    NSTimeInterval todaysDiff = [end timeIntervalSinceNow];
    NSTimeInterval dateDiff = lastDiff - todaysDiff;

    double numOfDays = dateDiff/86400; //86400 seconds in a day

    return (int)(numOfDays + 0.5);

}

我这样称呼它:

int numOfDays = [self daysBetweenDate:lastResetDay andDate:[dict objectForKey:@"nsDate"]];

我传入的两个值都是NSDate的

在枚举NSMutableArray时调用上面的内容。

运行此操作后,我收到以下错误:

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UITableView timeIntervalSinceNow]:无法识别的选择器发送到实例0x6818600'

1 个答案:

答案 0 :(得分:3)

在某些时候,您将UITableView存储在旨在成为NSDate的内容中。通过代码调试并检查数组中的值,并查看您正在执行此操作的位置。 ObjC是弱类型的,并且很容易将错误的类型放入NSMutableArray,因为它需要并返回id