我想从我的NSDictionary填充我的tableview

时间:2012-09-25 14:47:22

标签: iphone ios json uitableview

- (void)receiveData:(NSData *)data {
    self.office = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
    self.files = [office objectForKey:@"files"];
    [self.myTableView reloadData];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.files.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [[UITableViewCell alloc] init];

    NSDictionary *file = [self.files objectAtIndex:indexPath.row];
    cell.textLabel.text = [file objectAtIndex:1];  //here i want to get data from the array
    cell.textLabel.font = [UIFont boldSystemFontOfSize:15];
    cell.textLabel.numberOfLines = 1;
    return cell;
    NSLog(@"files:\n%@", file);
}

我有一个json响应,我已存储在NSDictionary办公室,并且json中的数组存储在NSArray文件中,现在我已将文件数组提供给另一个NSDictionary文件,并根据存储在该文件中的数据我想要该数据在我的表行中,但我的文件数组中没有任何“键”,只有该数组中的值,

所以我的问题是我如何在我的文件字典中指出该值,我已经在我想要的地方发表评论,请看那条评论....

3 个答案:

答案 0 :(得分:0)

您正在创建字典:

NSDictionary *file = [self.files objectAtIndex:indexPath.row];

NSDictionary使用键编制索引,因此您必须使用objectForKey:

获取字符串
cell.textLabel.text = [file objectForKey:@"fileName"];

答案 1 :(得分:0)

我认为您必须误解NSDictionary的工作方式,否则您在self.files中访问的对象实际上并不是NSDictionaries。如果它们实际上是NSDictionary对象,则需要像runmad用

一样访问它们
[file objectForKey:@"keyName"]

如果没有按键,那么您正在处理不同类型的对象,我们需要了解更多细节以便能够为您提供帮助。当你发布问题时,runmad给了你正确的答案。

答案 2 :(得分:0)

JSON解析器NSJSONSerialization可能没有创建您认为具有的NSDictionary / NSArray结构。你必须检查你的JSON,例如使用jsonlint.com,然后使用NSLog查看字典/数组中的内容。还可以尝试一些NSJSONReadingOptions选项。