2012-07-14 72 views
1

我想將文件的內容傳遞到一個數組,然後由隨機圖像生成器調用。我錯過了一些東西(或很多東西)。有任何想法嗎?在隨機生成器中使用NSMutableArray

NSString *chords = [[NSBundle mainBundle] pathForResource:@"ChordCharts" ofType:nil]; 

chordCharts = [NSMutableArray arrayWithContentsOfFile:chords]; 

int randomimages = rand() % 4; 

switch (randomimages) { 

    case 0: 

     chordImage.image = [UIImage imageNamed:[chordCharts objectAtIndex:0]]; 

     break; 

    case 1: 

     chordImage.image = [UIImage imageNamed:[chordCharts objectAtIndex:1]]; 

     break; 

    case 2: 

     chordImage.image = [UIImage imageNamed:[chordCharts objectAtIndex:2]]; 

     break; 

    case 3: 

     chordImage.image = [UIImage imageNamed:[chordCharts objectAtIndex:3]]; 

     break; 

    default: 

     break; 

} 

回答

0

那麼,什麼問題?如果您希望文件看起來像這樣

Name1.gif 
Name2.jpg 
... 

那麼它不會工作; 「initWithContentsOf」陣列上需要一個plist文件:

<?xml version="1.0" encoding="UTF-8"?> 
<plist version="1.0"><array> 
    <string>Name1.gif</string> 
    <string>Name2.jpg</string> 
    ... 
</array></plist> 

如果你想要的文件的第一個版本,你冷剛文件讀入到一個字符串,並使用componentsSeparatedByString:@「\ n」來拆呢到行:

NSString* MyString=[NSString stringWithContentsOfFile:@"..."]; 
NSArray* chordCharts=[MyString componentsSeparatedByString:@"\n"]; 

您可能要檢查空行,並可能修剪線以及

+0

阿(開頭和結尾刪除空格),沒趕上的plist的事。我將重新編寫代碼。真正的問題是,調用此方法時不會顯示圖像。我希望能找到一種有效的方法來將大量的.png文件存儲在一個數組中,然後在開關盒中調用這些地址。這樣,我不必寫出如此多的UIImage名稱。那有意義嗎? – 2012-07-14 20:26:20