1

像这样的一些事情:

@property (nonatomic,assign) NSTimeInterval *startTime;

AVAudioPlayer *player;

我想这样做

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

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

如果我像这样更改向上代码

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

它可以很好地工作。

4

2 回答 2

5

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

@property (nonatomic) NSTimeInterval startTime;
于 2012-02-20T07:21:27.663 回答
3

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;
    }
}
于 2014-06-18T04:26:58.757 回答