Как я могу сравнить два объекта типа NSTimeInterval - PullRequest
1 голос
/ 20 февраля 2012

Примерно так:

@property (nonatomic,assign) NSTimeInterval *startTime;

AVAudioPlayer *player;

И я хочу сделать это

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

Я думаю, что они оба типа данных NSTimeInterval, почему я не могу этого сделать?

Если я изменю код вверх, как это

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

Может работать очень хорошо.

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

NSTimeInterval - это просто определение типа double.Это не объект Objective-C, поэтому вы, вероятно, не должны использовать указатель в качестве вашего свойства.Вы должны просто использовать простой NSTimeInterval:

@property (nonatomic) NSTimeInterval startTime;
2 голосов
/ 18 июня 2014

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;
    }
}
...