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);
}

NSDictionary オフィスに保存した json 応答があり、その json の配列は NSArray ファイルに保存されています。ファイル配列を別の 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

JSON パーサー NSJSONSerialization は、あなたが持っていると思う NSDictionary/NSArray 構造を作成していない可能性があります。jsonlint.com などで JSON を確認し、NSLogを使用して、辞書/配列に何が配置されているかを確認する必要があります。また、NSJSONReadingOptions オプションのいくつかを試してください。

于 2012-09-25T15:20:37.733 に答える
0

NSDictionary の仕組みを誤解しているか、self.files でアクセスしているオブジェクトが実際には NSDictionaries ではないかのどちらかだと思います。それらが実際にNSDictionaryオブジェクトである場合、runmadが言うようにアクセスする必要があります

[file objectForKey:@"keyName"]

キーがない場合は、別のタイプのオブジェクトを扱っているため、詳細を知る必要があります。あなたが質問を投稿したように、runmad はあなたに正しい答えを与えました。

于 2012-09-25T15:10:27.980 に答える