无法从文件路径创建 UIImage

Unable to create UIImage from filepath

我正在尝试从 Core Data 保存文件位置列表创建 UIImage。这是我的代码:

ontracFullScreenImageViewController *sectional = [viewControllerDictionary objectForKey:@"Sectional Appendices"];
        sectional.dataObject = self.dataObject.dataPack;
        //sectional.imageArray = [[dataObject.sectionalDiagrams allObjects] mutableCopy];



        if ([dataObject.sectionalDiagrams count] != 0 || dataObject.sectionalDiagrams == nil){
        NSLog(@"dataObject.sectionalDiagrams %@", dataObject.sectionalDiagrams);
            for (SectionalDiagram *section in dataObject.sectionalDiagrams) {
                NSLog(@"section %@", section);
                UIImage *image = [UIImage imageWithContentsOfFile:section.locationString];

                NSLog(@"image %@", image);

                if(image != nil){
                    [sectional.imageArray addObject:image];
                    [sectional.imageLinks addObject:section.locationString];
                }



            }
            //[sectional loadScreen];

        }
        else
        {
            [self removeMenuOptionForString:@"Sectional Appendices"];
        }
        [TestFlight passCheckpoint:@"Loaded the Sectional Appendices"];

日志显示以下对象与核心数据请求:

with objects {(
<SectionalDiagram: 0x14fdde40> (entity: SectionalDiagram; id: 0x14fddb10 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/SectionalDiagram/p15> ; data: {
dataObject = "0x14d29820 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/DataObject/p17>";
locationString = "/var/mobile/Containers/Data/Application/43B4BC10-58AA-45DE-9A3B-E90A3A08DC2D/Documents/coss@on-trac.co.uk_A2rA2d_sectional_appendix_947735_2147483647_image.png";
}),
<SectionalDiagram: 0x14fddbd0> (entity: SectionalDiagram; id: 0x14fddaf0 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/SectionalDiagram/p13> ; data: {
dataObject = "0x14d29820 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/DataObject/p17>";
locationString = "/var/mobile/Containers/Data/Application/43B4BC10-58AA-45DE-9A3B-E90A3A08DC2D/Documents/coss@on-trac.co.uk_NpH3Yg_sectional_appendix_947735_2147483647_image.png";
}),
<SectionalDiagram: 0x14fdde10> (entity: SectionalDiagram; id: 0x14fddb00 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/SectionalDiagram/p14> ; data: {
dataObject = "0x14d29820 <x-coredata://BC0EFCDC-FAA8-404D-A9DE-33AEE09AD1C6/DataObject/p17>";
locationString = "/var/mobile/Containers/Data/Application/43B4BC10-58AA-45DE-9A3B-E90A3A08DC2D/Documents/coss@on-trac.co.uk_jGKgWx_sectional_appendix_947735_2147483647_image.png";
})

我已经检查过,所有三个图像都存在于设备上,但它一直返回为空。

问题是 Documents 目录的路径可能会更改,尤其是在重建应用程序时。所以不要存储文件的完整路径。只需存储文件名。要获取图像,请使用

查找文档目录的路径
[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]

并附加文件名。