• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 这曾经工作 : Displaying image using imageWithContentsOfFile

[复制链接]
菜鸟教程小白 发表于 2022-12-13 00:49:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

昨天早上这对我有用,但现在不行了。所以,我怀疑是其他原因导致它发生了变化……但我找不到变化。我花了几个小时将我的代码恢复了将近一周,但它仍然无法正常工作(我知道昨天早上它还在工作)。所以,我希望在发布这个特定问题(一个症状?)时会出现一些我可以评估的想法。谢谢。

我会根据需要下载图片:

NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *targetFile = [NSString stringWithFormat"%@/%@.%@", documentDirectory, imageName, imageType];

// only download those where an image exists
if(![imageType isEqualToString""])
{
    // only download the file if there is not already a local copy.
    if([filemgr fileExistsAtPath:targetFile] == NO)
    {
        NSMutableData *imageData = [[NSMutableData alloc] initWithLength:0];
        [imageData appendData:data];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *thumbNailFilename = [NSString stringWithFormat"%@.%@", imageName, imageType];
        NSString *thumbNailAppFile = [documentsDirectory stringByAppendingPathComponent:thumbNailFilename];
    }
}

然后显示它们:

NSString *imageFullName = [NSString stringWithFormat"%@%@", [greetingObject valueForKey"gid"], [greetingObject valueForKey"itp"]];
NSString *fullImagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:imageFullName];
UIImage *greetingImage = [UIImage imageWithContentsOfFile:fullImagePath];
self.greetingImage.image = greetingImage;

变量“imageFullName”和“fullImagePath”填充了正确的数据,并且图像文件存在于模拟器上的指定目录中。然而,“greetingImage”等于 nil。

这是我得到的“fullImagePath”:/Users/Steve2/Library/Application Support/iPhone Simulator/7.1/Applications/8C9F8417-F6E2-4B38-92B3-82A88477CB7F/Documents/165.jpg

以下是图片文件: screen shot of the images at the specified path

我还尝试了使用 initWithContentsOfFile 和 dataWithContentsOfFile 的变体并得到相同的结果。 greetingImage 变量为零。

我很欣赏你的想法。我什至重新安装了 Xcode,希望某些东西被破坏了。没有骰子。

已添加:我刚刚想到的一件事...我昨天确实将 SystemConfiguration.framework 添加到项目中以获得不相关的功能。它目前位于链接框架和库列表的顶部。我没有使用这个的经验。会不会是导致问题的原因?

谢谢。



Best Answer-推荐答案


您的代码看起来正确。

我会检查图像本身是否还可以。查看您发布的 Finder 屏幕截图并没有显示应使用有效 JPEG 进行的图像预览。您说图像正在下载,所以我怀疑它们在下载过程中以某种方式损坏。

编辑:

没有注意到您使用的是 initWithContentsOfFile。由于您将文件保存为 NSData 对象,您需要将它们作为 NSData 对象加载到内存中,然后使用数据对象初始化 UIImage,如下所示:

 NSData *imageData = [NSData dataWithContentsOfFile:filePath];
 [UIImage imageWithData:imageData];

关于ios - 这曾经工作 : Displaying image using imageWithContentsOfFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388054/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap