2013-08-05 43 views
0

我在Xcode的支持文件目錄中的圖像目錄中存儲了一堆圖像。我希望能夠顯示其中的一個圖像。獲得該圖像路徑的最佳方式是什麼?我必須先將它們複製到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; 
} 
+0

我需要一些澄清:您已經導入圖片到你的項目,你正在試圖訪問他們,對嗎?如果是這樣,Google for -imageNamed:在UIImage – katzenhut

+0

這是正確的。我真的不確定要尋找什麼,所以謝謝。 – muttley91

+0

沒問題,我將它添加爲答案。 – katzenhut

回答

4

這應該做的伎倆:

[UIImage imageNamed:@"someImageName"]; 

編輯: 一些額外的信息: -imageNamed:將尋找通過整個圖像文件的主要應用程序包(最好是一個png),文件名爲「someImageName」。您不必擔心它的位置或其擴展名,因爲它將在mainbundle中搜索。通過xcode中的導入文件對話框導入的文件將被添加到主包中。

這意味着: 如果我有進口名爲myImage.png文件,要求從我的代碼的任何地方[UIImage imageNamed:@"myImage"];會讓我包含圖像一個UIImage-對象。它非常簡單,也許這一震你一點;)

看看它的文檔,如果你喜歡: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html

+0

現在試試這個...如果我想這樣做,我不得不參考它的路徑,對嗎?目前似乎沒有做任何事情。我檢查了文檔文件夾(對於模擬器)並且圖像不存在於那裏。我需要複製它們嗎? – muttley91

+0

我修改了我的問題以包含代碼示例。 – muttley91

+0

@rar - 我也修改了我的anwser。 – katzenhut