2010-07-09 208 views
0

我有這個問題...我需要從我的應用程序的資源加載一個圖像,例如mystuff01.jpg,但也許被稱爲mystuff01.gif或PNG,現在,什麼是最好的解決方案做到這一點? 在我看來,有一個週期來檢索文件是否存在,如果存在加載它... 有更好的解決方案? 謝謝iPhone加載圖像沒有擴展名

回答

1

我認爲其中一個解決方案是創建一個NSArray {@「。jpg」,@「。png」},遍歷數組並將擴展名添加到文件名中,然後檢查文件名+擴展名存在,然後加載它。這將是更容易做,並能與環

+0

是的,這就是我的想法。我會盡力 – ghiboz 2010-07-09 08:39:55

1

完成從UIImage

在iOS 4及更高版本,不需要 文件名來指定 文件擴展名。在iOS 4之前, 必須指定文件名 擴展名。

否則,你將不得不嘗試每個擴展。您可以直接將每個擴展名的名稱傳遞給[UIImage imageNamed:],找到一個與[mainBundle pathForResource:ofType:];一起使用的名稱,或者使用NSFileManager獲取資源列表並查找最接近的匹配項。

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