ios - x代码 : Retrieving images from apps documents directory

标签 ios objective-c image

我遇到了一个我找不到解决方案的问题。我广泛搜索了论坛,但找不到任何东西。希望有人能够阐明一些问题。

我有一个可以保存图像的应用程序。它们被保存到应用程序文档目录中,它们的路径保存在 sqlite 数据库中。每次我运行/构建应用程序时,它都无法再检索文档目录中已有的图像。在同一个构建阶段,我可以重新保存图像,然后我可以很好地检索它们,但是一旦我再次运行/构建应用程序,它就无法检索图像。图像没有被删除,路径仍然正确。

这就是我尝试在我的 ViewDidLoad 方法中检索它们的方式

//database was opened. Getting path to image
NSString *logoPath = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 21)];
//use path to load image to a UIImage view
[self.logoView setImage:[UIImage imageWithContentsOfFile:logoPath]];

我已确认图像仍在文档目录中,并且在我上面的第一行代码中正确分配了路径。此代码仅在我运行/构建应用程序时失败。应用程序运行后,我可以将图像保存到目录并使用相同的代码检索它们就好了,但是一旦我再次运行/构建应用程序,即使我可以,也无法提取我在上一个构建中保存的图像仍然在目录中看到它们(我使用 iExplorer 查看我的 iPhone 目录)。

有什么想法吗?我在想,也许我必须以某种方式在目录中启动这些图像,以便在构建后立即使用它们。

更新 - 一些更多信息,以防有帮助。在我的 iPhone 上构建应用程序后,我可以关闭应用程序并重新打开它,图像就可以正常工作了。我什至可以完全关闭应用程序(双击主页按钮并结束应用程序进程),当我重新启动应用程序时,图像将从目录中检索出来就好了。但是,一旦我通过 xCode 再次构建应用程序,我就无法访问图像。完成新构建后,某些事情正在发生变化。

更新 2 - 我想我发现了问题,它就在路径中。 这是我的路

/var/mobile/Containers/Data/Application/8A387845-7B1F-4228-9E7E-2498EC302C5A/Documents/RYal7UXrLvcompanyLogo.png

再次构建应用程序后,这是我再次保存图像时的新路径

/var/mobile/Containers/Data/Application/C0C30E2F-05D8-48F4-A0FF-603359AF5130/Documents/RYal7UXrLvcompanyLogo.png

看起来应用程序和文档之间的部分在每次构建后都会发生变化,因此我保存在我的 sqlite 数据库中的路径在新构建后不再有效。所以现在我需要弄清楚不断变化的中间部分是什么,以及如何在每次构建后获取它,以便我可以更新我的图像路径。

最佳答案

问题是路径。每次创建新版本时,文档目录的部分路径都会更改。请参阅上面原始问题中的更新 2。

关于ios - x代码 : Retrieving images from apps documents directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080809/

相关文章:

objective-c - KVC一致性测试

ios - 使用 Calabash 测试应用程序关闭

ios - 使用 UIPanGestureRecognizer 检测重叠

ios - InstancesRespondToSelector 在不应该返回 true 时返回 true

iOS 模拟器不显示原型(prototype)单元格

java - 从方法返回 gif 图像

Android - 没有边距的背景图片

javascript - 我正在使用此代码在 javascript 中滑动图像

ios - 计算 PFRelation 中的对象数

ios - UITextField ResignFirstResponder 在 UIScrollView 上崩溃