0

重複の可能性:
pList をソースとするセクション化された UITableView

セルのテキスト ラベルを plist の文字列の値に設定するのに苦労しています。でアプリがクラッシュしcell.textlabel.text = [array objectAtIndex:indexPath.row];ます。他のすべては良いと確信していますが、最後の部分がわからないだけです。前もって感謝します。

これが私のplistです:

Root - Array
    Item 0 - Dictionary
        Key 0 - Array
            Item 0 - String - Value 0
        Key 1 - Array
            Item 1 - String - Value 1

これが私のテーブルビューデータソースメソッドです:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return _objects.count;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

NSDictionary *dict = [_objects objectAtIndex:section];
return [dict.allValues count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

NSArray *array = [_objects objectAtIndex:indexPath.section];
cell.textLabel.text = [array objectAtIndex:indexPath.row];

return cell;

}
4

1 に答える 1

0

あなたの構造は_object明確ではありません。私はそれItem 0 - Dictionaryがplistで参照されていると仮定しています。

numberOfRowsInSection:あなたはそれを辞書と呼んでいます:

NSDictionary *dict = [_objects objectAtIndex:section]

cellForRowAtIndexPath:あなたはそれを配列と呼んでいます:

NSArray *array = [_objects objectAtIndex:indexPath.section];

とにかく、私の仮定が正しければ、cellForRowAtIndexPathコードを次のように変更します。

NSDictionary *dict = [_objects objectAtIndex:indexPath.section];
NSarray *array = [dict objectForKey:myKey]; //myKey is whatever key you are assigning
cell.textLabel.text = [array objectAtIndex:indexPath.row];

お役に立てれば。

編集:

それを達成するためにplistを再構築できます。あなたは基本的にレベルを取り除くだけdictionaryです..次のようなことを試してください:

Root - Array
    Item 0 - Array                   <-- this is a section
        Item 0 - String - Value 0    <-- this is a cell
    Item 1 - Array                   <-- section
        Item 0 - String - Value 1    <-- cell
于 2012-09-19T22:25:56.343 に答える