在数组中添加图像
我试图从XML
enclosure
下载后追加arrays中的图像。 20个图像是XML
。 我想将这些图像依次存储在数组中,然后尝试保存在NSUserDefaults
。 任何人都可以告诉我,我可以做到这一点? 谢谢
var imageArray : [NSData] = [] var imgIndex = 0 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 if indexPath.row == self.imgIndex{ imageArray.insert(UIImageJPEGRepresentation(img, 0.75)!, atIndex: self.imgIndex) 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!)!) } } } }
'我得到了一些输出后,这个错误。 图像下载图像下载图像附加数据致命错误:数组索引超出范围'
获取所有图像并分配给
var DtaAryVar: [NSData]()
然后将NSData数组转换为数据并存储
let DtaZipVar = NSKeyedArchiver.archivedDataWithRootObject(DtaAryVar) let DftSdbVal = NSUserDefaults.standardUserDefaults() DftSdbVal.setObject(DtaZipVar, forKey: "ImageKey")
你可以通过取回你的数据
var DtaZipVar = DftSdbVal.valueForKey("ImageKey") let DtaAryVar = NSKeyedUnarchiver.unarchiveObjectWithData(DtaZipVar) as! [NSData] let ImjAryVar = [UIImage]() for DtaIdxVar in DtaAryVar { ImjAryVar.append(UIImage(data : DtaIdxVar)) }