在 NSUserDefaults 或文档目录中保存和读取图像数组及其数据
saving and reading array of images with its data in NSUserDefaults or in Document Directory
我试图在下载后将图像及其数据附加到数组中,然后尝试保存在 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!)!)
}
}
}
}
您不能将图像添加到用户默认值,它们不受支持。您需要将图像转换为数据并将其保存(保存为用户默认值,或者更好地保存到文件中的磁盘...
imageArray.insert(UIImageJPEGRepresentation(img, 0.75), atIndex: self.imgIndex)
我试图在下载后将图像及其数据附加到数组中,然后尝试保存在 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!)!)
}
}
}
}
您不能将图像添加到用户默认值,它们不受支持。您需要将图像转换为数据并将其保存(保存为用户默认值,或者更好地保存到文件中的磁盘...
imageArray.insert(UIImageJPEGRepresentation(img, 0.75), atIndex: self.imgIndex)