xCode:从apps文档目录中检索图像

时间:2014-11-22 18:16:41

标签: ios objective-c image

我遇到了一个我无法找到解决方案的问题。我已广泛搜索论坛,但找不到任何东西。希望有人可能会有所帮助。

我有一个可以保存图片的应用。它们保存在apps文档目录中,它们的路径保存在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数据库中保存的路径在新构建之后不再有效。所以现在我需要弄清楚每个构建后不断变化以及如何获取它的中间部分,以便我可以更新我的图像路径。

1 个答案:

答案 0 :(得分:1)

问题在于道路。每次创建新构建时,文档目录的部分路径都会更改。请参阅上述原始问题中的更新2。