iphone - 我在我的应用程序中删除了一个视频,但它仍然存在于相机胶卷中,反之亦然

标签 iphone objective-c ios ipad

我注意到我的应用程序中有一些非常奇怪的东西。我的应用程序记录视频和图片。如果我从相机胶卷中删除视频,我的应用程序仍然可以播放它。当我删除视频时,应用程序可以转到相机胶卷,它仍然在那里。

似乎应用程序保留了视频的单独副本,而手机操作系统保留了另一个副本。

我的应用是否可以通过某种方式删除这两个副本,或者理想情况下只保存未出现在相机胶卷中的应用特定副本?

我用来保存电影的路径是:

file://localhost/var/mobile/Applications/735E62F4-F5C4-49F5-A0BF-C34784F4B631/Documents/defaultFolder/1346579390.mov

最佳答案

你的问题有一些不清楚的地方,特别是不清楚你是如何保存你的视频和图片的。我将稍微解释一下一般情况下储蓄是如何发生的,这样可能会帮助您找到问题。

首先,每个应用程序都有自己的沙盒,它可以在其中保存数据,并且任何应用程序都不能访问另一个应用程序的沙盒。另一方面,Apple 允许任何应用程序访问照片库,但只能通过两种方式:从照片库中读取,或在照片库中写入数据。照片库中不允许删除数据。换句话说,一旦你在照片库中保存了一些东西,你就不能从你的应用程序中删除它,用户必须自己手动执行此操作,方法是转到照片库并将其从那里删除。

通常在照片库中保存如下:

UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil); //for image files
UISaveVideoAtPathToSavedPhotosAlbum(pathOfVideoToSave, nil, nil, nil); //for video files

因此,如果您的代码中没有这些行,则不应将文件保存在照片库中。要在您的应用沙箱中保存数据,您通常使用:

[dataToSave writeToFile:fullPathToFile atomically:NO];

因此,如果您的代码中只有这一行,那么您将只会将图像和视频保存在您的应用沙箱中,如果您将它们从沙箱中删除,它们将不会在照片库中找到。我希望这能为您澄清一些事情。

关于iphone - 我在我的应用程序中删除了一个视频,但它仍然存在于相机胶卷中,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234952/

相关文章:

objective-c - SIMBL 在取景器中调配

java - 快速将字符串转换为数据库 HTTP.UTF8

ios - 我的 UIImageView 中的约束有什么问题,为什么我不能在 UIViewController 上拉伸(stretch)图像?

iphone - UIAlertViewDelegate 类 "self"实例在按下按钮之前被释放

iphone - 在 iPhone/iPad 上正确使用宏 #define

ios - 自定义单元格和 dequeueCellWithIdentifier 中的 UIGestureRecognizer 冲突

ios - 长按显示隐藏的 UIImage

iphone - 在应用程序设置中设置 iPhone 应用程序语言有效,但应用程序名称不会更改

iphone - iphone内存泄漏

objective-c - 将 float 舍入为数组中的 float