想要比较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
的任何版本中是否有人遇到过类似的问题?
答案 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}}。