【问题标题】:Swift: temporarily storing image locally while app is in foreground and backgroundSwift:当应用程序处于前台和后台时,将图像临时存储在本地
【发布时间】:2020-11-27 07:38:31
【问题描述】:

我试图在用户运行应用程序时将图像存储在本地,并在应用程序在后台运行时将图像保存在本地。当用户终止应用程序时,数据应该在本地消失,并且只有在用户重新打开应用程序时才会加载。我最初知道如何加载图像,但我正在考虑在哪里/如何在本地存储图像。

我知道 Swift 有文件系统,但我想知道这是否是这种实现的最佳实践,或者是否有更好的解决方案。

【问题讨论】:

    标签: swift image background local-storage foreground


    【解决方案1】:

    完全按照你的意愿去做是不可能的,但你可以在功能上做一些类似的事情。

    要缓存图像,您可以简单地使用现有库,例如 SDWebImage。它为您管理异步图像下载和缓存,并且您可以轻松清除缓存的图像

    SDImageCache.sharedImageCache().clearMemory()
    SDImageCache.sharedImageCache().clearDisk()
    

    现在,至于何时要清除缓存,就有点棘手了。

    终止应用程序时无法清除缓存,因为无法可靠地检测应用程序何时终止。有UIApplicationDelegate.applicationWillTerminate方法,但如果应用程序在挂起状态下终止,则不会调用它。

    但您可以采取一种解决方法:只需在UIApplicationDelegate.application(_:didFinishLaunchingWithOptions:) 中启动应用程序时清除缓存,这在功能上等同于您想要执行的操作。

    【讨论】:

      猜你喜欢
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多