我正在将用户设置的图像保存在FileManager中。然后,我必须检索这些图像并填充UITableView。但是,如何保存多个不同的图像,然后全部恢复并显示在UITableView中?
我面临的错误是,当我保存图像时,我检索它时只得到了一个UIImage,而不是多个不同的图像。即使我保存了另一个不同的图像,它也只是被替换而不是添加另一个。因此,这样做无法填充UITableView,因为我总是得到一个UIImage而不是多个保存的图像。
这是保存图像的功能
func saveImage(image: UIImage) -> Bool {
let data = UIImage.pngData(image)
guard let directory = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) as NSURL else {
return false
}
do {
try data()?.write(to: (directory.appendingPathComponent("fileName2.png")?.absoluteURL)!)
return true
} catch {
print(error.localizedDescription)
return false
}
}
这就是我保存UIImage的方式
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[.originalImage] as? UIImage {
self.imagePreview.image = image
self.namePreview.text = self.textFieldNome.text
//Saving Image
let savingImage = saveImage(image: image)
print("\(savingImage)")
}
self.picker.dismiss(animated: true, completion: nil)
}
这是检索图像的功能
func getSavedImage(named: String) -> UIImage? {
if let dir = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) {
return UIImage(contentsOfFile: URL(fileURLWithPath: dir.absoluteString).appendingPathComponent(named).path)
}
return nil
}
ViewController:这就是我试图检索图像的方式
override func viewDidLoad() {
super.viewDidLoad()
if let image = getSavedImage(named: "fileName2.png") {
print(image)
}
}
答案 0 :(得分:0)
解决方案在这里:)
Model::find($id)->update($request->all());