Wie kann ich zwei NstimeInterval -Objekte vergleichen?
-
28-10-2019 - |
Frage
Etwas wie das:
@property (nonatomic,assign) NSTimeInterval *startTime;
AVAudioPlayer *player;
Und ich möchte das tun
if (self.player.currentTime > sub.startTime) {
do something...
}
Ich denke, sie sind beide NSTimeInterval
Geben Sie Daten ein, warum kann ich das nicht?
Wenn ich den Up -Code wie diesen ändere
if (self.player.currentTime > 5) {
do something...
}
Es kann sehr gut funktionieren.
Lösung
NSTimeInterval
ist nur ein Typedef von double
. Es ist kein objektives C-Objekt, also sollten Sie wahrscheinlich wahrscheinlich nicht Verwenden Sie einen Zeiger als Ihre Eigenschaft. Sie sollten einfach eine Ebene verwenden NSTimeInterval
:
@property (nonatomic) NSTimeInterval startTime;
Andere Tipps
NstimeInterval wird so deklariert
typedef double NSTimeInterval;
Sie können eine solche Helfermethode implementieren
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;
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow