【问题标题】:iOS: Use UIImage in ViewModel(from MVVM) and in Presenter(from MVP)iOS:在 ViewModel(来自 MVVM)和 Presenter(来自 MVP)中使用 UIImage
【发布时间】:2017-07-21 23:19:36
【问题描述】:

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

关于示例应用程序的几句话:

  • 这是一个简单的图像加载器
  • 流程:使用来自500px 的图片加载 JSON -> 在UICollectionView 中显示单元格取决于返回的 JSON 中的图片数量 -> 逐渐下载图片并在单元格中显示它
  • 我在 3 种架构设计MVVMMVCMVP 下实现的相同应用程序

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

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

所以,问题

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

GitHub link on sample application

【问题讨论】:

  • 您需要将图像存储为数据类型,当您想要显示它们时,您将在视图控制器中使用 Imageview。

标签: ios design-patterns mvvm architecture mvp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2013-07-05
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2023-03-15
    • 2013-06-10
    相关资源
    最近更新 更多