0

いくつかの文字列を Plist に保存してから、ランダムな文字列を選択してラベルに表示しようとしています。何らかの理由で、Xcode が Plist を見つけたりロードしたりできません。

コード "NSLog(@"dictionary: %@, array: %@", plistDict, plistArray);"

「2013-07-29 11:38:22.216 Random[1434:60b] 辞書: (null)、配列: (null)」を返します

したがって、これは .plist ファイルが無効であるか、Xcode が何らかの理由でファイルを読み取れないことを意味するとしか考えられません。ボタンの .m コードは次のとおりです。

NSString *path = [[NSBundle mainBundle] pathForResource:
                  @"jokes" ofType:@"plist"];

NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *plistArray = plistDict[@"list"];

int randV = arc4random() % plistArray.count;

jokeLabel.text = plistArray[randV];

NSLog(@"dictionary: %@, array: %@", plistDict, plistArray);

また、私の plist ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>list</key>
    <array>
        <string>Some Text Here</string>
        <string>Other Text Here</string>
    </array>
</dict>
</plist>

これを適切に機能させるにはどうすればよいですか? ありがとう!

4

2 に答える 2

0

あなたのコードは絶対に問題ありません。プロジェクトに追加された plist ファイルの名前が正しいかどうかを確認します。

于 2013-07-30T13:02:40.987 に答える
0

NSString *path の値は? それが null の場合、他のすべては to になります。ファイル名は大文字と小文字が区別されるため、plist の名前が「jokes.plist」であることを確認してください。

于 2013-07-29T19:00:06.557 に答える