从支持文件中的图像目录中获取图像路径

时间:2013-08-05 17:15:22

标签: ios objective-c

我有一堆图像存储在Xcode的Supported Files目录下的images目录中。我希望能够显示其中一个图像。获取该图像路径的最佳方法是什么?我是否必须先将它们复制到Documents目录?如果是这样,我该怎么做?

编辑:我已尝试以下操作将图像从支持文件复制到应用程序中的Documents文件夹。它成功复制,但我无法显示图像:

-(void)findImage:(NSString *)imageName
{

// First, test for existence.
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];

success = [fileManager fileExistsAtPath:appImagePath];
if (success)
{
    return;
}
// The writable database does not exist, so copy the default to the appropriate location.
NSString *defaultImagePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpg",imageName]];
success = [fileManager copyItemAtPath:defaultImagePath toPath:appImagePath error:&error];
if (!success)
{
    NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
self.imageDisplay.image = [UIImage imageNamed:appImagePath];
return;
}

1 个答案:

答案 0 :(得分:4)

这应该可以解决问题:

[UIImage imageNamed:@"someImageName"];

编辑: 一些其他信息: -imageNamed:将查看应用程序的整个主包,以查找文件名为“someImageName”的图像文件(最好是png)。您无需担心其位置或扩展名,因为它将在mainbundle中进行搜索。您通过xcode中的import-file-dialog导入的文件将添加到主包中。

这意味着: 如果我导入了一个名为myImage.png的文件,那么从我的代码中的任何地方调用[UIImage imageNamed:@"myImage"];都会得到一个包含该图像的UIImage-Object。它非常简单,也许让你吃了一惊;)

如果您愿意,请在文档中查找: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html