Ios 我的模型对象应该负责下载自己的资源吗?
Myapp使用远程API更新其数据,并且必须脱机工作,因此在显示应用程序的主要部分之前,必须下载所有数据 API返回一个表示应用程序内容的大JSON结构。JSON被转换成许多字典和数组,然后模型类被实例化并由这些字典和数组支持 我的问题是,其中一些字典和数组包含图像的URL,这些图像也必须下载。每个模型对象都应该负责下载自己的图像吗?或者我应该有某种控制器类来处理这个问题 还有,处理这个问题的好方法是什么?例如,我如何知道所有模型对象何时完成了资源下载Ios 我的模型对象应该负责下载自己的资源吗?,ios,model-view-controller,Ios,Model View Controller,Myapp使用远程API更新其数据,并且必须脱机工作,因此在显示应用程序的主要部分之前,必须下载所有数据 API返回一个表示应用程序内容的大JSON结构。JSON被转换成许多字典和数组,然后模型类被实例化并由这些字典和数组支持 我的问题是,其中一些字典和数组包含图像的URL,这些图像也必须下载。每个模型对象都应该负责下载自己的图像吗?或者我应该有某种控制器类来处理这个问题 还有,处理这个问题的好方法是什么?例如,我如何知道所有模型对象何时完成了资源下载 所有资源都必须提前上传,因为客户端希望能够
所有资源都必须提前上传,因为客户端希望能够在没有互联网连接的情况下使用应用程序。答案取决于应用程序的业务需求
UIImageView
类别(这是一个非常好的实现;如果您正在使用,它也有一个)。对于这两种情况,您只需执行以下操作:
[self.imageView setImageWithURL:url];
这将异步检索图像,缓存图像以防UI再次需要它,等等。此外,如果您在具有单元格重用的tableview中使用它,它将取消以前的单元格的旧请求,这些单元格的下载尚未完成,以确保对可见单元格图像的请求不会在用户可能不再关心的一堆旧请求之后被积压,等等虽然后一种模式乍一看似乎很吸引人,但它有许多缺点。例如,如果用户使用手机连接,您可能会花费大量带宽下载用户可能不立即需要的图像,并在下载过程中消耗用户的数据计划和电池。因此,您可能只想在以下情况下这样做:(a)您确实需要离线使用所需的一切;(b)您对所需的资源(数据计划和电池消耗)没有意见。答案取决于您应用程序的业务需求
UIImageView
类别(这是一个非常好的实现;如果您正在使用,它也有一个)。对于这两种情况,您只需执行以下操作:
[self.imageView setImageWithURL:url];
这将异步检索图像,缓存图像以防UI再次需要它,等等。此外,如果您在具有单元格重用的tableview中使用它,它将取消以前的单元格的旧请求,这些单元格的下载尚未完成,以确保对可见单元格图像的请求不会在用户可能不再关心的一堆旧请求之后被积压,等等虽然后一种模式乍一看似乎很吸引人,但它有许多缺点。例如,如果用户使用手机连接,您可能会花费大量带宽下载用户可能不立即需要的图像,并在下载过程中消耗用户的数据计划和电池。因此,您可能只想在以下情况下这样做:(a)您确实需要离线使用所需的一切;(b)您对所需的资源(数据计划和电池消耗)没有意见。答案取决于您应用程序的业务需求
UIImageView
类别(这是一个非常好的实现;如果您正在使用,它也有一个)。对于这两种情况,您只需执行以下操作:
[self.imageView setImageWithURL:url];
这将异步检索图像,缓存图像以防UI再次需要它,等等。此外,如果您在具有单元格重用的tableview中使用它,它将取消以前的单元格的旧请求,这些单元格的下载尚未完成,以确保对可见单元格图像的请求不会在用户可能不再关心的一堆旧请求之后被积压,等等