AlamofireImage保存到缓存的图像并没有真正保存

时间:2016-10-03 09:19:26

标签: ios swift alamofireimage

我正在使用(尝试)AlamofireImage。 我保存到缓存的图像并没有真正保存。

我的代码包括:

import Alamofire
import AlamofireImage

let imageCache = AutoPurgingImageCache(
    memoryCapacity: 100 * 1024 * 1024,
    preferredMemoryUsageAfterPurge: 60 * 1024 * 1024
)

然后我自己使用以下方式保存图像:

imageCache.add(image, withIdentifier: path)

但是在下一次运行中,当我尝试使用相同的路径获取此图像时,它总是返回nil:

if let image = imageCache.image(withIdentifier: path){
    return image
}
return nil

我做错了什么?

  • 在运行\ debugging时我可以看到imageCache-currentMemoryUsage = 0

感谢。

2 个答案:

答案 0 :(得分:1)

您无需调用add()方法。我创建了自定义类,它包装了Alamofire Image缓存。

public char[] generateRandomLettersFromAlphabet(char[] alphabet,
        int numberOfLetters) {

    if (numberOfLetters < 1) {
        throw new IllegalArgumentException(
                "Number of letters must be strictly positive.");
    }

    Random random = new Random();
    char[] randomLetters = new char[numberOfLetters];

    for (int i = 0; i < numberOfLetters; i++) {
        randomLetters[i] = alphabet[random.nextInt(alphabet.length)];
    }

    return randomLetters;

}

答案 1 :(得分:0)

  

但是在下一次运行中,当我尝试使用相同的路径获取此图像时,它总是返回nil:

这听起来像是您重新启动应用。 ImageCache仅限内存,重启应用程序时将回收您应用的内存。