ios - 从解析后端删除后解析图像文件在应用程序中持久存在

标签 ios swift parse-platform

我正在开发一个使用解析来存储和接收图片的应用程序。图片在手机上拍摄,在app上显示,保存在parse中,可以通过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 加载时显示。但是,当我自己手动从解析中删除图片时,而不是通过代码,图片仍然存在并将继续加载,直到我从模拟器中删除应用程序并重新加载它。这是解析/模拟器/代码问题吗?

注意:我是在模拟器上测试的,不是真机

谢谢

最佳答案

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

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

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

关于ios - 从解析后端删除后解析图像文件在应用程序中持久存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470061/

相关文章:

ios - 将文本从 View 中的 TextLabel 传递到另一个 View 中的标签

iphone - UITableView 无限滚动

swift - UIPickerView 中的索引行 didSelectRow 选择

swift - wkwebview 自动填写登录表单 swift 2

在 iPad 上具有自定义大小的 SwiftUI sheet() 模态

android - Parse 使用哪种类型的数据库? (SQL 或 NoSQL)?

ios - 如何在 phonegap 中添加 ios 插件?

ios - WKWebView和身份验证

java - 我如何在 Android 上访问相机胶卷/照片?

java - App 从解析初始化恢复返回后,在主线程上获取网络异常