如何从cloudkit接收图像?

nac*_*n f 6 xcode ios icloud swift cloudkit

我使用此代码在icloud中存储图像,但我使用什么代码来检索它并将其放在UIImageView中?我已经尝试了一切,但它不会工作?

func SaveImageInCloud(ImageToSave: UIImage) {
    let newRecord:CKRecord = CKRecord(recordType: "ImageRecord")

    let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
    let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
    if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) {
        if paths.count > 0 {
            if let dirPath = paths[0] as? String {
                let writePath = dirPath.stringByAppendingPathComponent("Image2.png")
                UIImagePNGRepresentation(ImageToSave).writeToFile(writePath, atomically: true)

                var File : CKAsset?  = CKAsset(fileURL: NSURL(fileURLWithPath: writePath))
                newRecord.setValue(File, forKey: "Image")

            }
        }
    }

    if let database = self.privateDatabase {
        database.saveRecord(newRecord, completionHandler: { (record:CKRecord!, error:NSError! ) in
            if error != nil {
                NSLog(error.localizedDescription)
            } else {
                dispatch_async(dispatch_get_main_queue()) {
                    println("finished")
                }
            }
        })
    }
Run Code Online (Sandbox Code Playgroud)

Edw*_*eer 11

只需阅读您编写的CKRecord,您就可以通过读取关键图像来获取CKAsset.您可以使用下面的代码获取UIImage.

var file : CKAsset? = record.objectForKey("Image")

func image() -> UIImage? {
    if let file = file {
        if let data = NSData(contentsOfURL: file.fileURL) {
            return UIImage(data: data)
        }
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)