CKAsset испортил URL файла в Xcode 8 beta 6 / Swift 3

Я пытаюсь загрузить UIImage в CloudKit в два этапа:

  1. получить URL файла для моего UIImage
  2. получить CKAsset для моего файла URL

Однако при отладке CKAsset, который я создал на втором шаге, я заметил, что путь к файлу с моим изображением не существует, и поэтому CloudKit не может сохранить ресурс!

Вот мой код:

// thumbnail is my UIImage
if let thumbnailURL = thumbnail.urlOf() {
    self.thumbnailAsset = CKAsset(fileURL: thumbnailURL)
    self.record["thumbnail"] = thumbnailAsset
} else {
    NSLog("Could not create thumbnail asset!")
}

extension UIImage {
    func urlOf() -> URL? {
        do {
            let imageData = UIImageJPEGRepresentation(self, 1)
            let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
            let documentDirectory = paths[0] as String
            let myFilePath = NSURL(fileURLWithPath: documentDirectory).appendingPathComponent("thumbnail.jpg")
            try imageData?.write(to: myFilePath!, options: .atomicWrite)
            let url = myFilePath! as URL
            return url
        } catch {
            NSLog("Could not save thumbnail to local directory!")
            return nil
        }
    }
}

Есть идеи, что здесь происходит? Это регрессия в бета 6 или мой код неверен?

Спасибо за отзыв!

-- Отметка

Вот несколько утверждений lldb:

    (lldb) po thumbnailURL
▿ file:///Volumes/Work/Users/mark/Library/Developer/CoreSimulator/Devices/B1F9E45D-2A75-454F-AC56-37186428E833/data/Containers/Data/Application/E02EE6DF-17E4-4809-8978-339E76ED1EB3/Documents/picture

(lldb) po self.record["thumbnail"]
▿ Optional<CKRecordValue>

(lldb) po self.record["thumbnail"]!
<CKAsset: 0x6100001e8400; path=~/Documents/picture, UUID=BF838CB7-E828-4CD8-8517-911E25818088>

0 ответов

Другие вопросы по тегам