2016-12-20 33 views
-1

想要比較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的任何版本中遇到這個類似的問題?

回答

3

CMTime作爲Swift 3中的Comparable類型導入,因此,您無需使用CMTIME_COMPARE_INLINE

假設_previousSecondTimestamps[CMTime]類型(* 1),你可以寫這樣的事情在斯威夫特3:

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

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

* 1在斯威夫特,可以直接申報CMTime一個數組,你有沒有必要使用含有NSValueNSMutableArray

+0

謝謝!儘管我也找到了另一種解決方案! –