Ios 如何将阵列的所有图像转换为数据
我正在尝试将数组中的图像转换为NSData,以便通过segue方法将其传递给另一个视图控制器 我已尝试通过NSDataRepresentation方法成功地将单个图像转换为NSData。但在尝试对资产映像执行此操作时,我发现很难访问阵列的映像。目前,我可以访问阵列的第一个或最后一个图像,但需要所有图像进行转换Ios 如何将阵列的所有图像转换为数据,ios,swift,Ios,Swift,我正在尝试将数组中的图像转换为NSData,以便通过segue方法将其传递给另一个视图控制器 我已尝试通过NSDataRepresentation方法成功地将单个图像转换为NSData。但在尝试对资产映像执行此操作时,我发现很难访问阵列的映像。目前,我可以访问阵列的第一个或最后一个图像,但需要所有图像进行转换 @IBAction func doneButton(_ sender: UIButton) { let imageData_1 : NSData = UIImagePNGRepre
@IBAction func doneButton(_ sender: UIButton) {
let imageData_1 : NSData = UIImagePNGRepresentation(photoArray.last!)! as NSData
photoImageData.append(imageData_1)
performSegue(withIdentifier: "toBodyViewPage", sender: self)
}
你可以试试
@Action func doneButton(_ sender: UIButton) {
photoImageData = photoArray.compactMap { UIImagePNGRepresentation($0) }
performSegue(withIdentifier: "toBodyViewPage", sender: self)
}
对于xcode 10+和swift 4.2
photoImageData = photoArray.compactMap { $0.pngData() }
你可以试试
@Action func doneButton(_ sender: UIButton) {
photoImageData = photoArray.compactMap { UIImagePNGRepresentation($0) }
performSegue(withIdentifier: "toBodyViewPage", sender: self)
}
对于xcode 10+和swift 4.2
photoImageData = photoArray.compactMap { $0.pngData() }
看起来您使用的是旧版本的swift,它是用xcode编译的吗?顺便说一句,如果现在不强制更新就更好了为什么你甚至需要转换图像,你不能直接传递它们或者给它们一条路径吗?为什么是NSData而不是像photoArray.last.pngData()那样的
数据
?使用photoArray
访问所有元素到底有什么问题?@JoakimDanielson如何访问所有元素。我只能访问数组的第一个和最后一个元素。另外,我玩swift代码的时间不长。您在photoArray中使用for
循环,for item{let data=item.pngData()?顺便说一句,如果现在不强制更新就更好了为什么你甚至需要转换图像,你不能直接传递它们或者给它们一条路径吗?为什么是NSData而不是像photoArray.last.pngData()那样的数据
?使用photoArray
访问所有元素到底有什么问题?@JoakimDanielson如何访问所有元素。我只能访问数组的第一个和最后一个元素。另外,我使用swift代码的时间不长。您在photoArray{let data=item.pngData()'没有photoArray
的成员'compactMap'共享声明,并且您最新的tryi use 4.0 swift和flatMap被降级为compactMap.var photoArray=[UIImage]()var photoImageData=[NSData]()'flatMap'生成'[String]',而不是预期的上下文结果类型'[NSData]“这是我在使用flatMap for compactMapI后得到的结果。我得到的答案是:“[UIImage]”类型的值没有photoArray
的成员“compactMap”共享声明,并且您最新的tryi使用4.0 swift,flatMap被降级为compactMap.var photoArray=[UIImage]()var photoImageData=[NSData]()“flatMap”生成“[String]”,而不是预期的上下文结果类型“[NSData]”。这是我在使用flatMap for compactMap后得到的结果