我正在开发一个应用程序,使用解析存储和接收图片。这些图片是在手机上拍摄的,显示在应用程序上,保存在解析中,并且可以通过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
加载时的情况。但是,当我手动从解析中删除图片时,而不是通过代码,图片将持续存在,并将继续加载,直到我从模拟器中删除应用程序并重新加载它。这是一个解析/模拟器/代码问题吗?
注意:我是在模拟器上测试这个,而不是实际的手机。
谢谢
发布于 2015-09-09 05:36:36
这可能有几个可能的原因。首先,Parse将图像存储在Amazon-S3中,实际上您收到的是该文件的绝对链接。删除具有文件引用属性的解析对象时,可能根本不会删除原始文件。这就是为什么Parse在你的分析应用功能上有一个Clear Unused Files
的原因。
其次,在几个级别上,图像可能出于明显的性能原因而被缓存。因此,即使图像文件被删除,它也会在几个位置持续一定的时间,这可能是您遇到此问题的另一个原因。
但是,根据经验,您应该以这样一种方式编写逻辑:如果某个特定对象被用户删除,您就不应该在下一次提取与该对象相关的任何内容。此外,您也可以在您的分析应用程序上使用常规的清除未使用文件的cron作业。
https://stackoverflow.com/questions/32470061
复制相似问题