我有一个plist,它是一个包含字典的数组。我试图在表格视图中打印出名称,但名称并没有显示出来。到目前为止我所拥有的是以下代码
self = [super init];
if (self) {
// Fetch from the app bundle... load the NSDictionary
_qList = [NSArray arrayWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"test" withExtension:@"plist"]];
_qNames=[_qList valueForKey:@"Name"];
}
return self;
对于我的桌面视图,我有
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
int index = [indexPath indexAtPosition:1];
NSString *key = [[self.test.qNames valueForKey:@"Name"] objectAtIndex:index];
NSString *value = [self.test.qNames objectForKey:key];
[[cell textLabel] setText:value];
return cell;
}
我的plist结构如下:
Root(数组) -Item 0(字典) -名称 -类 -年龄 - 项目1(字典) -名称 -类 -age
依旧......
我只需要弄清楚如何放
NSDictionary *name=[self.model.qList valueForKey:@"Name"];
我返回表格视图的名称?
答案 0 :(得分:1)
我认为您正在尝试使用键值编码(KVC)从字典中获取名称(字符串)数组。
为此你应该使用valueForKeyPath,而不是valueForKey
在初始化程序中,
//Get the array of names
_qNames=[_qList valueForKeyPath:@"Name"];
在cellForRowAtIndexPath中,
NSString *name = [self.test.qNames objectAtIndex:indexPath.row];
[[cell textLabel] setText:name];