如何比较两个NSTimeInterval类型对象

时间:2012-02-20 07:16:50

标签: objective-c ios nstimeinterval

有些事情是这样的:

@property (nonatomic,assign) NSTimeInterval *startTime;

AVAudioPlayer *player;

我想这样做

if (self.player.currentTime  > sub.startTime) {
    do something...
}

我认为它们都是NSTimeInterval类型数据,为什么我不能这样做?

如果我像这样更改代码

if (self.player.currentTime  > 5) {
    do something...
}

它可以很好地运作。

2 个答案:

答案 0 :(得分:5)

NSTimeInterval只是double的typedef。它不是Objective-C对象,因此您可能使用指针作为您的属性。你应该使用普通的NSTimeInterval

@property (nonatomic) NSTimeInterval startTime;

答案 1 :(得分:2)

NSTimeInterval声明为

typedef double NSTimeInterval;

您可以实现一些像这样的辅助方法

static double NSTimeIntervalEqualCompareThreshold = 0.01;

NSComparisonResult NSTimeIntervalCompare(NSTimeInterval time1, NSTimeInterval time2)
{
    if (abs(time2 - time1) < NSTimeIntervalEqualCompareThreshold) {
        return NSOrderedSame;
    } else if (time1 < time2) {
        return NSOrderedAscending;
    } else {
        return NSOrderedDescending;
    }
}