在数组中添加图像

我试图从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)) }