2009-02-04 74 views
2

我想在資源中用一組圖像填充一個NSArray。不過,爲了獲得最大的靈活性,我試圖避免對文件名進行硬編碼,甚至無法編寫多少文件。如何枚舉和加載iPhone應用程序中的資源?

通常情況下,我會做這樣的事情從示例代碼例如在蘋果:

kNumImages = 5; //or whatever 
NSMutableArray *images; 
for (i = 1; i <= kNumImages; i++) 
{ 
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i]; 
    [images addObject:[UIImage imageNamed:imageName]; 
} 

不過,我想完全避免kNumImages。有沒有辦法運行正則表達式或資源上的東西?

回答

11

這裏有一個片段,不只是從我的iPhone應用程序

// Load item icons 
paths = [[NSBundle mainBundle] pathsForResourcesOfType:@"png" inDirectory:nil]; 
for (NSString *filename in paths) { 
    filename = [[filename componentsSeparatedByString:@"/"] lastObject]; 
    if ([filename hasPrefix:@"ItemIcon"]) { 
    [UIImage imageNamed:filename]; 
    } 
} 

它通過循環有一個PNG擴展名的所有資源,並將其文件名以「ItemIcon」開始,那麼它加載到UIImage的內置緩存。

如果您將它們放在特定目錄中,則需要指定indirectory:參數。

+0

如果我有混合圖像類型會怎麼樣? 他們都會有像image#.ext這樣的名字,但是ext可能會有所不同。 – Sam 2009-02-04 21:49:18

相關問題