Redux:最佳做法(使用Swift)

时间:2018-12-27 11:51:19

标签: ios swift redux uiimage reswift

我需要有关iOS应用中Redux最佳实践的建议。

我正在尝试掌握这种架构模式,但是我没有使用Redux + Reactive方法。只需ReSwift +简单的声明性代码。

我面临的问题是基本的。存储UIImage。 据我在某些教程中所看到的,不建议将UIImage存储为州的属性。因此,建议存储图像的路径。

要获取路径,我们需要将映像本地保存到磁盘。图像来自手机的媒体库。因此,将其保存到本地需要时间(同步完成,因为我不想为一个最简单的屏幕添加一个UIImageView异步任务)。

幸运的是,图像选择器控制器为我们提供了图像网址:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
    let imageURL = info[.imageURL] as? URL
    picker.dismiss(animated: true, completion: nil)
    store.dispatch(DidPickImageAction(imageURL: imageURL))
}

我可以使用它,而无需将图像重写到文件中,从而解决了问题。

但是,还可以选择通过相机制作新图像。在这种情况下,信息词典没有.imageURL,这又使我不得不将图像写入文件。

这使我只想在状态中存储UIImage,但是由于它违反Redux规则,所以我在问:

在Redux架构中使用图像的最佳实践是什么?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

直接保存图像不好。

您可以采取的最佳方法。

  1. 在文档目录中写入图像。
  2. 在Core中保存图像名称 数据
  3. 通过核心数据获取图像名称,并通过文档获取图像     目录。