2016-12-20 9 views
-1

CMTime을 비교하고 그에 따라 루프를 수행하고 싶습니다. ObjectiveCSwift으로 변환하면 CMTIME_COMPARE_INLINE에 적합한 방법을 찾을 수 없습니다.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의 배열을 선언 할 수 있습니다, 당신은 필요가 없습니다 NSValue을 포함하는 NSMutableArray을 사용하십시오.

+0

감사합니다. 나는 또 다른 해결책을 찾았지만! –