在Swift中使用NSOperation和NSOperationQueue在UICollectionView中进行延迟加载

在Flickr上创建帐户后,您必须生成api密钥并将该api密钥替换为搜索URL中的“ ”。 由于这不是有关Flickr服务的教程,因此我们将不再赘述。 搜索Flickr之前,需要输入API密钥。

与Flickr api调用和图像数据相关的类已经创建并包含在项目中,该项目的链接在本教程的最后提供。 在本教程中无法编写和解释整个代码,请参考所有代码片段以从项目中提供的类中获得详细的了解。

该项目包包含两个类和一个专用于执行基于Flickr的任务的结构:

  • FlickrSearchResults :一种结构,用于包装搜索词和为该搜索找到的结果。
  • FlickrPhoto :从Flickr检索的照片的数据模型-其元数据信息,例如其ID。 还有一种构建Flickr URL和一些大小计算的方法。 FlickrSearchResults包含这些对象的数组。
  • Flickr :提供一个简单的基于块的API来执行搜索并返回FlickrSearchResult

随意看一下代码-这很简单,可能会激发您在自己的项目中使用Flickr! 打开Flickr.swift并将apiKey的值替换为apiKey获得的API密钥。 它看起来应该像这样:

当您准备好开始时,请转到下一部分-是时候进行一些准备工作,然后再熟悉Flickr。

准备图像数据

打开SearchViewController.swift ,您将在其中找到两个属性:

  var searchs = [FlickrSearchResults]() 
flickr = Flickr()

searches是一个数组,将跟踪应用程序中进行的所有搜索,而flickr是对将为您进行搜索的对象的引用。

创建图像下载管理器

ImageDownloadManager类将创建一个单例实例,并具有NSCache实例来缓存已下载的图像。