1

ファイルの内容を配列に渡そうとしています。この配列は、ランダム画像ジェネレーターによって呼び出されます。何か(または多くのもの)が欠けています。何か案は?

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;

}
4

1 に答える 1

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"];

空の行を確認し、場合によっては行をトリミングすることもできます (先頭と末尾の空白を削除するため)。

于 2012-07-14T16:33:24.617 に答える