现在,通过单击提交按钮,3个图像中的第一个及其数据显示在另一个表视图中...
现在我再次访问我的ADD PRODUCTS
屏幕,再添加2张图片..
但现在当我点击提交按钮时,tableview中显示的图像应该是2个图像中的第1个图像,即瀑布的图像。但显示的图像是......
从图库中选择图片时,在didFinishPickingMediaWithInfo
方法中,我将图片转换为NSData
并将其分配给NSData
类型的数组,如此...
let data = UIImagePNGRepresentation(image) as NSData?
self.appDelegate.mydata1 = data!
self.appDelegate.mydataArray.append(self.appDelegate.mydata1)
点击提交按钮我将self.appDelegate.mydataArray
保存到CoreData就像这样..
newProdObj.setValue(self.appDelegate.mydataArray, forKey:
"imageDataArray") //In the .xcdatamodel, imageDataArray is an attribute of type Transformable and custom class type Array<NSData>
do {
try managedContext.save()
self.newProductDetails.append(newProdObj as! NewProduct)
} catch let error as NSError { }
在tableviewcontroller视图中,我像这样提取这些数据..
newProdDetails = try managedContext.fetch(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) as! [NewProduct]
for result in newProdDetails {
if let imageData = result.value(forKey: "imageDataArray") as?
Array<NSData> {
}
tableview.reloadData()
}
在cellForRowAt
这是我正在做的......
let dfg = newProdDetails[indexPath.row]
cell.nameLabel.text = dfg.name
cell.qtyLabel.text = dfg.quantity
cell.rateLabel.text = dfg.mrp
let arrayOfAllImageData = dfg.imageDataArray
if let image = UIImage(data: arrayOfAllImageData![0] as Data) {
imageArray.append(image)
cell.productImageView.image = imageArray[indexPath.row]
}
我做错了什么..?还是有更好的方法......?
答案 0 :(得分:0)
BTW,如果arrayOfAllImageData![indexPath.row]为nil,则不更改cell.productImageView.image
if let image = UIImage(data: arrayOfAllImageData![indexPath.row] as Data) {
cell.productImageView.image = image
}
所以在这里你必须添加else块