Как сохранить и загрузить VideoURL в iOS swift с использованием основных данных? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть videoURL вроде file:///var/mobile/Containers/Data/Application/3C80B7F1-F0AA-4723-B7F5-E7AC5E71CA09/Documents/2018-Nov-12%2014:09:01output.mov

Я сохраняю этот videoURL, используя приведенный ниже код для преобразования в DATA.

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

let entity = NSEntityDescription.entity(forEntityName: "Device", in: context)

let newEntity = NSManagedObject(entity: entity!, insertInto: context)

self.videoData =  NSData(contentsOf: self.videoURL as URL)! as Data

newEntity.setValue(self.videoData, forKey:"videoURL")

do {

    try context.save()
    print("saved")

} catch {
    print("not saved") 
}

, но не могу преобразовать эти данные в URLво время извлечения.Кто-нибудь может подсказать мне, как выполнить эту задачу?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы сохраняете загруженные видеоданные, а не URL.

Установите тип атрибута videoURL на URI, а тип соответствующего свойства на URL и сохраните self.videoURL

Кстати, не используйте NS классы, такие как NSURL и NSData, используйте URL и Data, и настоятельно рекомендуется использовать точечную нотацию вместо KVC (value(forKey:) при доступе к NSManagedObject свойства

let newEntity = NSManagedObject(entity: entity!, insertInto: context) as! Device
self.videoData = Data(contentsOf: self.videoURL)! 

newEntity.videoURL = self.videoURL

do { 
    try context.save()
    print("saved")
} catch {
  print(error) 
}
0 голосов
/ 12 ноября 2018

Извините, но это неправильно. почему вы хотите конвертировать URL в данные? Вы просто сохраняете URL как строку, затем выбираете эту строку и работаете с URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...