1

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

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

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

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

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

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 架构中处理图像的最佳实践是什么?

任何帮助将不胜感激。

4

1 回答 1

0

直接保存图像并不好。

你能做的最好的方法。

  1. 在文档目录中写入您的图像。
  2. 在核心数据中保存图像名称
  3. 使用核心数据获取图像名称并使用文档目录获取图像。
于 2018-12-27T12:27:49.823 回答