0

可能重复:
来自 pList 的分段 UITableView

我很难尝试将单元格的文本标签设置为我的 plist 中字符串的值。该应用程序崩溃了cell.textlabel.text = [array objectAtIndex:indexPath.row];。我很确定其他一切都很好,只是不知道最后一部分。提前致谢。

这是我的清单:

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

这是我的 tableview 数据源方法:

- (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 回答