如何在FileManager中保存多个UIImage

时间:2018-07-12 01:30:32

标签: ios swift xcode nsfilemanager

我正在将用户设置的图像保存在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)

        }
    }

1 个答案:

答案 0 :(得分:0)

解决方案在这里:)

Model::find($id)->update($request->all());