1

私は一般的にコーディングに少し慣れていないと言って始めたいと思いますが、学ぶことに興奮しています. .plist ファイルに文字列として格納されているアルファベットの最初の 4 文字を循環するラベルを取得しようとしています。ボタンを押すたびに値が切り替わります。

plist のソース コードは次のとおりです。

<dict>
<key>0</key>
<string>A</string>
<key>1</key>
<string>B</string>
<key>2</key>
<string>C</string>
<key>3</key>
<string>D</string>

次のコードを使用して値を簡単に循環できるように、キーを整数にしました。

- (void)buttonPressed:(id)sender {
int x = 0;
NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
theLabel_.text = [dict objectForKey:x];
x++;
}

これはまったく機能していません。問題は、ラベルのテキストを変更する行にあると思われます。整数値で「objectForKey」ステートメントを正しく使用しているとは思いません。plist データにアクセスするためのキーとして整数を使用するにはどうすればよいですか?

4

1 に答える 1

0

プロパティ リスト ディクショナリは文字列をキーとして使用するため、整数インデックスから文字列を作成する必要があります。

theLabel_.text = [dict objectForKey:[NSString stringWithFormat:@"%d", x]];

より良い方法は、代わりに配列 (plist オブジェクトも) を使用することです。次に、変更する必要があるのはアクセス方法だけです。

NSArray *array = [[NSArray alloc] initWithContentsOfFile:path];
theLabel_.text = [array objectAtIndex:x];

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

<array>
    <string>A</string>
    <string>B</string>
    <string>C</string>
    <string>D</string>
</array>
于 2013-06-18T17:56:59.730 に答える