iPhone加载图片没有扩展名

时间:2010-07-09 07:28:45

标签: iphone image load

我有这个问题...我需要从我的应用程序的资源中加载一个图像,例如mystuff01.jpg,但也许可以称为mystuff01.gif或png,现在,这样做的最佳解决方案是什么? 在我看来,如果文件存在并且是否存在加载它,则有一个循环来检索... 有更好的解决方案吗? 感谢

3 个答案:

答案 0 :(得分:2)

如果要从文件系统而不是捆绑包加载文件,那么您可能想要使用它:

NSString *assetsDirectory = [....] // your base asset directory, e.g. documents directory
NSArray *extensions = [NSArray arrayWithObjects:@"png", @"jpg", @"jpeg", nil];
NSFileManager *fm = [NSFileManager defaultManager];
NSString *storageLocation = nil;
for (NSString *ext in extensions) {
    NSString *testLocation = [NSString stringWithFormat:@"%@/mystuff.%@", assetsDirectory, ext];
    if ([fm fileExistsAtPath:testLocation]) {
        storageLocation = testLocation;
        break;
    }
}

// file name is in "storageLocation" now

答案 1 :(得分:1)

我认为其中一个解决方案是创建一个NSArray {@“。jpg”,@“。png”},遍历数组并将扩展名添加到文件名中,然后检查文件名+扩展名是否存在,然后你加载它。它会更容易,并且可以使用循环

完成

答案 2 :(得分:1)

来自UIImage

  

在iOS 4及更高版本中,名称为   文件不需要指定   文件扩展名。在iOS 4之前,   你必须指定文件名   扩展

否则,您必须尝试每个扩展名。您可以将每个扩展名的名称直接传递给[UIImage imageNamed:],找到一个与[mainBundle pathForResource:ofType:];一起使用的名称,或使用NSFileManager获取资源列表并查找最接近的匹配项。