0

我们的平面设计师正在向我们发送名为“hide_00~iphone.png”、“hide_00@2X~iphone.png”等的 .PNG

他正在从 After Effects 中导出图像。我将它们添加到项目中并尝试在初始化时将它们加载到数组中。每次他的所有文件都会引发异常。现在,如果我进入并将查找器中的文件重命名为完全相同的名称,一切都编译得很好。我不知道这里发生了什么。在我重命名它们之前,Xcode 无法在文件系统中找到它们。但是这个名字和他发给我的名字完全一样。我检查了他的文件命名周围的空白,但一切看起来都很好。

有人知道 After Effects 是否在图像中放置了奇怪的标题信息吗?或者这听起来对任何人来说都很熟悉。我们正在处理一大堆图像,我不想手动重命名它们。

4

1 回答 1

2

所以我只是使用了 imageNamed 并且图像加载得很好。因此,显然您按路径/名称加载图像的例程是有缺陷的。您可以发布它并对其进行评估 - 但这与“After Effects”无关。

编辑:作为记录,我的系统是 Lion Xcode 4.4.1,我的项目设置为 iOS 5.1。我从保管箱中获取了您的文件,并验证了在我的项目中我可以按照您的尝试加载图像:

for (int i = 6; i < 7; i++) {
    NSString *path = [NSString stringWithFormat:@"hide_step_seq_%02d", i];
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:path  ofType:@"png"]];
    NSLog(@"PATH %@ image=%@", path, image);
}
2012-09-13 07:15:23.241 Searcher[58114:f803] PATH hide_step_seq_06 image=<UIImage: 0x6a4cb30>

那么,从这里到哪里去呢?我试图帮助这里的几个被@2x 或~iphone 后缀烫伤的人。出于某种原因,有些人似乎永远无法让它发挥作用——我所能想到的就是系统深处有一些标志被切换,并且没有办法解除它。

我的建议是尝试使用实际的完整文件名 - 尝试附加 ~iphone 看看是否有效。

您也可以在终端中执行 'ls *.png | od -c' 在更改名称之前和之后,以验证字符是否完全相同。

我对此的最后一个想法是文件具有许多属性:创建时间、上次访问、上次修改、扩展属性、权限等。由于某种原因,这些值中的一个可能(虽然不太可能)阻止系统尝试使用 ~iphone 后缀。

我真的希望我能进一步帮助你。如果你想把一个简单的小项目放在一起,只是尝试打开一些图像但它失败了,把整个项目压缩起来,放在保管箱上,我非常愿意在我的系统上运行它来尝试并复制问题。您也可以像我在上面的代码中所做的那样,验证路径看起来不错并且图像为零。

于 2012-09-13T01:21:31.370 回答