使用NSUserDefaults或文档目录中的数据保存和读取图像数组

时间:2016-06-25 14:34:57

标签: ios swift nsuserdefaults nsdocumentdirectory

我尝试在下载后将数据附加到Array中的数据,然后尝试保存在NSUserDefaults中。但是得到一个错误。我不知道保存和阅读它的正确方法是什么。 谁能告诉我怎么做到这一点? 感谢

var imgIndex = 0
var imageArray : [UIImage] = []
typealias CompletionHandler = (image: UIImage) -> Void

downloadFileFromURL(NSURL(string: self.posts.objectAtIndex(indexPath.row).valueForKey("enclosure") as! String)!, completionHandler:{(img) in
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    cell.sideImageView.image = img
                    imageArray.insert(img, atIndex: self.imgIndex) //.append(img)
                    self.imgIndex++
                    print("Image append with data")
                    self.newsDefaults.setObject(imageArray, forKey: "image")

                })
            })


func downloadFileFromURL(url1: NSURL?,completionHandler: CompletionHandler) {
    // download code.
    if let url = url1{
        let priority = DISPATCH_QUEUE_PRIORITY_HIGH
        dispatch_async(dispatch_get_global_queue(priority, 0)) {
            let data = NSData(contentsOfURL: url)
            if data != nil {
                print("image downloaded")
                completionHandler(image: UIImage(data: data!)!)
            }
        }
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

您无法将图像添加到用户默认值,但不支持这些图像。你需要将图像转换为数据并保存它(保存到用户默认值,或者更好地保存到文件中的磁盘上......

imageArray.insert(UIImageJPEGRepresentation(img, 0.75), atIndex: self.imgIndex)