CMTIME_COMPARE_INLINE 在 Swift 3?
CMTIME_COMPARE_INLINE in Swift 3?
想要比较 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
的任何版本中遇到过类似的问题吗?
CMTime
在 Swift 3 中作为 Comparable
类型导入,因此,您无需使用 CMTIME_COMPARE_INLINE
.
假设_previousSecondTimestamps
的类型是[CMTime]
(*1),你可以在Swift3中这样写:
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
的数组,不需要使用包含NSValue
.
的NSMutableArray
想要比较 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
的任何版本中遇到过类似的问题吗?
CMTime
在 Swift 3 中作为 Comparable
类型导入,因此,您无需使用 CMTIME_COMPARE_INLINE
.
假设_previousSecondTimestamps
的类型是[CMTime]
(*1),你可以在Swift3中这样写:
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
的数组,不需要使用包含NSValue
.
NSMutableArray