Swift 3中的CMTIME_COMPARE_INLINE?

时间:2016-12-20 04:38:45

标签: swift cmtime

想要比较CMTime并根据我正在执行循环。将ObjectiveC转换为Swift,我无法为CMTIME_COMPARE_INLINE找到合适的方法。

CMTime oneSecond = CMTimeMake( 1, 1 );
CMTime oneSecondAgo = CMTimeSubtract( timestamp, oneSecond );

while( CMTIME_COMPARE_INLINE( [_previousSecondTimestamps[0] CMTimeValue], <, oneSecondAgo ) ) {
    [_previousSecondTimestamps removeObjectAtIndex:0];
}

Swift的任何版本中是否有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:3)

CMTime在Swift 3中作为Comparable类型导入,因此您无需使用CMTIME_COMPARE_INLINE

假设_previousSecondTimestamps的类型为[CMTime](* 1),您可以在Swift 3中编写类似的内容:

    let oneSecond = CMTime(seconds: 1.0, preferredTimescale: 1)
    let oneSecondAgo = timestamp - oneSecond

    while !_previousSecondTimestamps.isEmpty && _previousSecondTimestamps[0] < oneSecondAgo {
        _previousSecondTimestamps.remove(at: 0)
    }

* 1在Swift中,您可以直接声明CMTime数组,不需要使用包含NSMutableArray的{​​{1}}。