有些事情是这样的:
@property (nonatomic,assign) NSTimeInterval *startTime;
AVAudioPlayer *player;
我想这样做
if (self.player.currentTime > sub.startTime) {
do something...
}
我认为它们都是NSTimeInterval
类型数据,为什么我不能这样做?
如果我像这样更改代码
if (self.player.currentTime > 5) {
do something...
}
它可以很好地运作。
答案 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;
}
}