plist值未在tableview中显示

时间:2013-10-04 00:22:26

标签: ios plist tableview

我有一个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"];

我返回表格视图的名称?

1 个答案:

答案 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];