重启ios应用后检查照片是不是仍然存在于相机胶卷中

Posted

技术标签:

【中文标题】重启ios应用后检查照片是不是仍然存在于相机胶卷中【英文标题】:Check if photo still exists in camera roll after restart ios app重启ios应用后检查照片是否仍然存在于相机胶卷中 【发布时间】:2017-04-13 10:29:40 【问题描述】:

我还是 ios 开发的新手,我正在创建一个允许选择一些照片并快速访问它们的应用程序。 在 CoreData 中,我存储照片的 referenceUrl 而不是照片本身。以这种方式启动应用程序时,我可以加载照片。

但是,在加载照片之前,我需要检查它们是否仍然存在,并且无法弄清楚如何使用 referenceUrl 检查照片是否存在。

即使使用 localPath 也不起作用。它一直返回 false。

如果您知道如何继续,我将不胜感激。 谢谢。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 

        let imageUrl          = info[UIImagePickerControllerReferenceURL] as! NSURL
        let imageName         = imageUrl.lastPathComponent
        let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
        let photoURL          = NSURL(fileURLWithPath: documentDirectory)
        let localPath         = photoURL.appendingPathComponent(imageName!)!
        let localPathString   = String(describing: localPath)

        let fileManager = FileManager.default
        if fileManager.fileExists(atPath: localPathString)
            print ("Photo exists")
         else
            print ("Photo does not exist")
        

【问题讨论】:

【参考方案1】:

我找到了解决办法,就在这里。

我在上面的代码中使用imageUrl

let assets = PHAsset.fetchAssets(withALAssetURLs: [imageUrl as URL], options: nil)
if assets.firstObject != nil 
   //Then the image is still there

else
   //The image is not present anymore

希望对您有所帮助。

【讨论】:

以上是关于重启ios应用后检查照片是不是仍然存在于相机胶卷中的主要内容,如果未能解决你的问题,请参考以下文章

从代码 iOS 中删除相机胶卷中的图像

检查保存到相机胶卷是否成功

能够记住重新打开应用程序时不应显示哪些相机胶卷照片(ios)

iOS:确定相册中的照片是不是来自相机

iOS:控制访问相机胶卷新出现

使用照片框架删除相机胶卷资产