0
- (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 文件中,现在我已将 files 数组提供给另一个 NSDictionary 文件,并根据存储在该文件中的数据,我希望该数据在我的表中行,但我的文件数组中没有任何“键”,只有该数组中的值,

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

4

3 回答 3

0

您正在创建字典:

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

NSDictionary用键索引,所以你必须用objectForKey:

cell.textLabel.text = [file objectForKey:@"fileName"];
于 2012-09-25T14:53:06.143 回答
0

我认为你要么误解了 NSDictionary 的工作原理,要么你在 self.files 中访问的对象实际上并不是 NSDictionaries。如果它们实际上是 NSDictionary 对象,则需要像 runmad 所说的那样访问它们

[file objectForKey:@"keyName"]

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

于 2012-09-25T15:10:27.980 回答
0

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

于 2012-09-25T15:20:37.733 回答