iOS:在 ViewModel(来自 MVVM)和 Presenter(来自 MVP)中使用 UIImage

iOS: Use UIImage in ViewModel(from MVVM) and in Presenter(from MVP)

我正在尝试弄清楚 MVVM 和 MVP 架构设计。我决定用不同的设计方法编写简单的单屏应用程序。

关于示例应用的几句话:

一切都很顺利,直到我需要下载图像并显示它们。

最初我认为处理此逻辑和缓存图片的最佳位置是 ViewModel(来自 MVVM)和 Presenter(来自 MVP)但是 AFAIK 这两个实体应该独立于 UI 层,但是如果我们想在那里使用 UIImage 这意味着我们应该 import UIKit in ViewModel/Presenter

所以,问题

  1. 我可以在 ViewModel/Presenter 中使用 import UIKit 吗?
  2. 在此 UIViewController 中加载和存储 UIImage 的最佳位置是什么, ViewModel/Presenter 还是别的?

GitHub link on sample application

为什么不使用图像数据而不是使用 UIImage 对象?这样你就可以使用数据进行缓存和逻辑处理,然后在需要时转换为 UIImage 对象。因此,您唯一一次使用 UIImage 将是在 UIViewController 中将数据转换为 UIImage。