我因为将一个分段的plist实现到UITableView而陷入困境。
我的plist设置如下。我有一个根数组,字典代表部分。这些字典有一个字符串'sectionname',它指示节标题以及里面的字典数组来表示单元格(原因是允许对单元格进行计数并且仍然有节标题。)
Root - Array
Item 0 - Dictionary
sectionname - string - A
RowsInSection - Array
Item 0 - Dictionary
name - string - Adam
Item 1 - Dictionary
name - string - Andrew
Item 1 - Dictionary
sectionname - string - B
RowsInSection - Array
Item 0 - Dictionary
name - string - Belle
Item 1 - Dictionary
name - string - Bob
Item 3 - Dictionary
[等等]。
现在,一切似乎都在工作,正确命名的标题就在那里,正确的行数在它们的部分下面。然而,行没有标签,对于我的生活,我无法弄清楚为什么。
我有一个plist的NSMutableArray
libraryContent = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:libraryPlist ofType:@"plist"]];
因此,部分中的行数。
NSInteger count = [[[[doa libraryContent] objectAtIndex:section] valueForKeyPath:@"RowsInSection.@count"]intValue];
return count;
标题的标题。
return [[[doa libraryContent] objectAtIndex:section] objectForKey:@"sectionname"];
我试着用以下内容无济于事。
cell.textLabel.text = [[[doa libraryContent] objectAtIndex:indexPath.row] valueForKey:@"name"];
我还在学习,这种情况在不同的地方混合在一起。 'doa'方法链接到另一个声明'libraryContent'的文件。
你们有没有想过如何从plist中取出这些名字?或者其他任何我正在尝试的方法?
答案 0 :(得分:0)
试试这段代码:
cell.textLabel.text = [[[[[doa libraryContent] objectAtIndex:indexPath.section] objectForKey:@"RowsInSection"] objectAtIndex:indexPath.row] objectForKey:@"name"];
<强> 修改 强>
这样代码将更具可读性:
NSDistionary *sectionDataDict = [[doa libraryContent] objectAtIndex:indexPath.section];
NSArray *sectionRowsArray = [sectionDataDict objectForKey:@"RowsInSection"];
NSDictionary *rowDataDict = [sectionRowsArray objectAtIndex:indexPath.row];
cell.textLabel.text = [rowDataDict objectForKey:@"name"];