在ios7中,我们可以将图像写入文档目录并毫无问题地访问它。 在IOs8中,我能够将imagesdata写入文档目录并访问它。每次我在模拟器上运行应用程序时,图像文件夹的位置都会改变。我经历了许多堆栈溢出问题和苹果的技术说明(链接:https://developer.apple.com/library/ios/technotes/tn2406/_index.html)但我没有得到任何解决方案。实际上我存储了sqlite数据库中的图像文件路径。
任何帮助表示感谢。
答案 0 :(得分:1)
好像你正在存储完整的路径。
在IOS 8中,Apple更改了目录结构。在文档目录中内部使用扩展文件夹(例如/ developer / data / some random number sequence)。如果存储完整路径,则目录文件夹会在每次构建时保持不变您的sqlite然后您在该位置找不到任何文件,因为文档目录位置已更改。
解决方案是不存储完整路径只是将文档目录中的路径存储到数据库中,而访问图像只是在它前面加上当前应用程序文档目录,然后您就可以从应用程序目录访问您的图像
示例:
//Storing Images
NSString *imagePathString = [NSString stringWithFormat:@“/%@/%@.png”,@“Your Folder name”,@“image name”];
//Store this image path String to database
//Retrieving Images
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *filePath = [documentsPath stringByAppendingPathComponent:imagePathString];
//This is the path for your images