Согласно документам
times - Массив объектов NSValue, содержащий CMTime
значений, представляющих моменты времени, в которые вызывается блок.
Вам необходимо создать соответствующие CMTime
структуры, а затем создать массив из NSValue
объектов:
let cmtime = CMTime(seconds: 2.18, preferredTimescale: 100)
let cmtimevalue = NSValue(time: cmtime)
let cmtimevalueArray = [cmtimevalue]
Имейте в виду, что количество секунд для этого инициализатора равно Double
, а timescale
равно CMTimeScale
aka Int32
Также ваш arrayOfBeats
- это не Array
, это Dictionary
, и элементы в словарях НЕ упорядочены.Вы, вероятно, не получите заказ, который искали.
Возможно, вам лучше обслужить массив кортежей.
let arrayOfBeats = [("2.18", 3), ("3.38", 5), ("3.63", 6)]
Преобразование значения String
секунд обратно в Double
- ваша (тривиальная) проблема.