我需要有关在 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 架构中处理图像的最佳实践是什么?
任何帮助将不胜感激。