Float64 в основных данных?

Я использую CMTime для AVAssets для видеоклипа. Чтобы обрезать видео без сохранения нового видеофайла, я просто хочу отслеживать время начала и продолжительность.

Метод CMTimeGetSeconds() вернет значение Float64, как лучше всего сохранить его в CoreData?

Я не могу использовать NSNumber в качестве типа с плавающей запятой вокруг пути Float64. 1.200000 — это 1.0000, когда я создаю свой NSNumber.

заранее спасибо


person Erik    schedule 13.03.2012    source источник
comment
-[NSNumber numberWithDouble:] округляет слишком много, когда вы обращаетесь к doubleValue (не floatValue)?   -  person Joe    schedule 13.03.2012
comment
Боюсь, что нет, продолжительность Float64 = CMTimeGetSeconds(asset.duration); self.videoTrack.duration = [NSNumber numberWithDouble:duration]; NSLog(@First Duration: %f, %f, duration, [self.videoTrack.duration doubleValue]); отпечатков: Первая продолжительность: 1.295000, 1.000000   -  person Erik    schedule 13.03.2012
comment
Весьма вероятно, что videoTrack отрегулирует продолжительность до красивого круглого числа, которое подходит для воспроизведения видео. Попробуйте создать NSNumber и напечатать его, не устанавливая для него продолжительность, и вы, вероятно, получите точно такой же результат.   -  person Joe    schedule 13.03.2012
comment
в моем основном файле модели данных я случайно сделал продолжительность целым числом. Спасибо что подметил это! Исправлена! Если вы дадите это как ответ на вопрос, я отмечу это как правильный ответ. Спасибо!   -  person Erik    schedule 13.03.2012


Ответы (1)


Судя по вашим комментариям, весьма вероятно, что объект videoTrack изменит продолжительность на хорошее круглое число, которое подходит для воспроизведения видео. Попробуйте создать NSNumber и напечатать его, не устанавливая для него свойство duration, и вы, вероятно, получите точно такой же результат. Также убедитесь, что тип данных установлен на Double в модели CoreData.

person Joe    schedule 13.03.2012