从解析后端删除后,解析图像文件在app中保持不变

时间:2015-09-09 02:33:56

标签: ios swift parse-platform

我正在开发一个使用解析来存储和接收图片的应用。这些照片是在手机上拍摄的,显示在应用程序上,保存在解析中,可以通过Parse检索。我解析起来相当新,所以我不确定以下行为是否正常。当我从解析下载图片时,我使用以下代码:

if let image1File = user?["image1"] as? PFFile {

image1File.getDataInBackgroundWithBlock {
        (imageData: NSData!, error: NSError!) -> Void in
        if !(error != nil) {
            imgOne.image = UIImage(data:imageData)
        }
    }
}

此代码位于viewDidLoad,因此图片会在viewController加载时显示。但是,当我自己手动删除图片时,而不是通过代码,图片仍然存在并将继续加载,直到我从模拟器中删除应用程序并重新加载它。这是解析/模拟器/代码问题吗?

注意:我在模拟器上测试它,而不是实际的手机

由于

1 个答案:

答案 0 :(得分:2)

可能有几种可能的原因发生。首先,Parse将图像存储在Amazon-S3中,您实际接收的是该文件的绝对链接。删除具有文件引用属性的解析对象时,原始文件可能根本不会被删除。这就是为什么Parse毕竟有一个来自你的Parse-app功能的Clear Unused Files

其次,在几个级别上,出于明显的性能原因,可能会缓存图像。因此,即使删除了图像文件,它也会在多个位置持续一段时间,这可能是您遇到此问题的另一个原因。

但是,根据经验,您应该以这样的方式对逻辑进行编码:如果用户删除了特定对象,则下次根本不应该提取与该对象相关的任何内容。此外,您可以在Parse-app上使用常规cron job to clean up unused files