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.

War es hilfreich?

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
scroll top