我正在编写一个连接到服务器并获取图像列表的应用程序,然后下载它们并将它们显示在网格中。
此过程的第一部分由我拥有的客户端类完成,该类连接到服务器并要求提供图像 URL 列表。我在我的视图控制器中执行此操作并将其传递给我的视图。
第二部分由我编写的图像缓存类完成,它获取每个图像 URL 并检查应用程序是否已下载并存储它。如果是这样,它会从文件系统中获取图像并返回它。否则,它会异步下载图像并存储它。
我现在做事的方式是,我的视图控制器获取图像标识符列表并将它们传递到我的视图中。然后视图为每个图像创建图像视图并用占位符图像填充它们,然后为每个图像询问图像缓存并在下载图像时填充图像。
我的视图的绘制功能本身具有这种下载图像的逻辑是否是糟糕的设计?感觉有点像违反 MVC,因为我的视图正在努力获取它应该显示的数据。但是,实际的网络是在其他地方(在图像缓存类中)完成的,并且被抽象出来,因此视图只是调用[ImageCache getImageForIdentifier:... completionHandler:...]
.