如何限制SDImageCache的磁盘大小和内存缓存

时间:2016-04-28 19:43:53

标签: ios caching sdwebimage

我想限制SDImageCache的内存缓存和磁盘缓存的大小。 下面是我用于下载图像的代码。默认情况下,它会将图像保存在缓存中,并且它存在于沙箱的“库”文件夹中。

  

我的申请   ID /库/缓存/ com.hackemist.SDWebImageCache.default /

myRootRef.createUser(email, password: pw, withValueCompletionBlock: { error, result in

            if error != nil {
                print("error creating user")
            } else {
                let uid = result["uid"] as! String
                NSUserDefaults.standardUserDefaults().setValue(uid, forKey: "uid")
                //pass the parameters to another function to auth the user
                self.authUserWithAuthData( email, password: pw ) 
            }

        })

2 个答案:

答案 0 :(得分:3)

<强>目标C

// Setting disk cache     
[[[SDImageCache sharedImageCache] config] setMaxCacheSize:1000000 * 20]; // 20 MB

// Setting memory cache 
[[SDImageCache sharedImageCache] setMaxMemoryCost:15 * 1024 * 1024]; // aprox 15 images (1024 x 1024)

Swift 4

// Setting disk cache
SDImageCache.shared().config.maxCacheSize = 1000000 * 20 // 20 MB

// Setting memory cache
SDImageCache.shared().maxMemoryCost = 15 * 1024 * 1024

答案 1 :(得分:0)

如果您希望限制缓存的最大大小,可以在 SDImageCache.m 中手动执行此操作,并将maxCacheSize设置为有限的字节数。您可以使用static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week来查看缓存年龄为一周的情况 并对缓存大小做同样的事情。