从String URL Array下载图像并保存到文件?

时间:2017-09-07 22:05:57

标签: ios arrays swift alamofire

我在字符串版本中有一个url数组(我使用字符串,因为在我的应用程序的其他部分需要字符串版本)。

我已将字符串转换为网址,然后尝试使用AlamoFire下载图像,然后使用FileManager保存它们。

尝试这个时,我无处可寻,并且已经遍布堆栈溢出,只是让自己更加困惑......

假设我有一个字符串网址数组,例如

["www.url1.com/image1.png","www.url2.com/image2.png"]

,数组长度在5-1000个网址之间(取决于用户选择显示的数量)

如何将这些图像保存到文件管理器或缓存中,以便每次显示视图时都不会重新下载图像? 此外,这些图像将被命名为' 0.png',' 1.png'等等,因此名称反映了它们在数组中的索引。

1 个答案:

答案 0 :(得分:0)

不会为你编写代码,但这是我采取的一般方法:

  1. 使用FileManager获取FileManager.SearchPathDirectory.cachesDirectory
  2. 的网址

    (Swift 4; Swift 3中的名字可能略有不同,不记得我的头顶)

    1. 使用.appendingPathComponent创建一个以应用程序的包标识符命名的子目录。

    2. 如果子目录不存在,则创建子目录。

    3. 使用您喜欢的任何组织方案,在代表您的网络网址的子目录中构建文件的网址。

    4. 检查您刚刚创建的网址,以查看该文件是否存在。如果是,请阅读。

    5. 如果步骤5中的文件不存在,请创建该文件,从网络下载数据,并将其存储在文件中。

    6. 请注意,这一切都假设您一次只有一个线程读取或写入缓存。如果您的应用程序是多线程的,则需要设置适当的安全措施以防止竞争条件。