在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实例来缓存已下载的图像。