0

我有一个 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结构如下:

根(数组)-Item 0(字典)-Name -Class -Age -Item 1(字典)-Name -Class -Age

等等..

我只需要弄清楚如何放置

 NSDictionary *name=[self.model.qList valueForKey:@"Name"];

我返回表格视图的名称?

4

1 回答 1

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];
于 2013-10-04T05:22:38.210 回答