我遇到了一个我找不到解决方案的问题。我已经广泛搜索了论坛,但找不到任何东西。希望有人能解释一下。
我有一个可以保存图像的应用程序。它们保存到应用程序文档目录中,并且它们的路径保存在 sqlite 数据库中。每次我运行/构建应用程序时,它都无法再检索文档目录中已经存在的图像。在同一个构建阶段,我可以重新保存图像,然后我可以很好地检索它们,但是一旦我再次运行/构建应用程序,它就无法检索图像。图片没有被删除,路径仍然正确。
这就是我尝试在 ViewDidLoad 方法中检索它们的方式
//database was opened. Getting path to image
NSString *logoPath = [[NSString alloc] initWithUTF8Stringconst 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 数据库中的路径在新构建后不再有效。所以现在我需要弄清楚中间部分是什么在不断变化,以及如何在每次构建后获取它,以便我可以更新我的图像路径。
Best Answer-推荐答案 strong>
问题是路径。每次创建新版本时,文档目录的部分路径都会更改。请参阅上面原始问题中的更新 2。
关于ios - xCode : Retrieving images from apps documents directory,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27080809/
|