2016-04-29 5 views
0

このJSONデータから特定のデータを取得してtableviewに挿入する方法がわかりません。リスト・アレイを介して値を取得iOSのテーブルビューでjsonデータを取得する方法

{ 
"error": "ok", 
"data": [{ 
    "facebook_id": "1068644546541665", 
    "user_id": "95590e92-6c74-44d1-9e5c-5a10c6341ba3", 
    "name": "Sunil", 
    "trackingallowed": 1, 
    "trackingpermission": 1 
}, { 
    "facebook_id": "10311905002886663", 
    "user_id": "95ab5fc0-9c6d-4e3e-9cb2-bfa4d53e640f", 
    "name": "Saravanan", 
    "trackingallowed": 1, 
    "trackingpermission": 1 
}, { 
    "facebook_id": "998936463528828", 
    "user_id": "cd6e3c89-bc2d-45a9-8436-9603e1b4724b", 
    "name": "Suresh", 
    "trackingallowed": 1, 
    "trackingpermission": 1 
}] 

}

-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
[friendsconnection_data appendData:data]; 
    NSError *localerror; 
    NSDictionary *parsedobject =[NSJSONSerialization JSONObjectWithData:data options:0 error:&localerror]; 
    NSLog(@"parsedobject1 %@",parsedobject); 
    ListArray = [parsedobject valueForKey:@"data"]; 

    NSLog(@"rrresults1 %lu",(unsigned long)ListArray.count); 
    NSLog(@"results1 %@",ListArray); 
} 

私はEXC_BAD_ACCESSを取得しています。 JSONから特定のデータを取得する方法を知る必要があります。例えば私はfacebookidnameだけを取得したいです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self FriendsData]; 
    static NSString *TableIdentifier [email protected]"tableitem"; 
    UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:TableIdentifier]; 
    if(cell == nil) 
    { 
     cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableIdentifier]; 
    } 
    cell.textLabel.text = [[ListArray objectAtIndex:indexPath.row]objectForKey:@"name"]; 
    tableView.rowHeight = 300; 

    return cell; 
} 
+0

を高さを設定

NSError *json_parse_error; NSDictionary *responseDictionary=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&json_parse_error]; NSArray *user_info_array=[responseDictionary valueForKey:@"data"]; 
あなたのテーブルビューのデリゲートで

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *[email protected]"tableitem";; cell=[tableView dequeueReusableCellWithIdentifier:TableIdentifier]; if (cell==nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:TableIdentifier]; } cell.textLabel.text = [[user_info_array objectAtIndex:indexPath.row] objectForKey:@"name"]; cell.detailTextLabel.text = [[user_info_array objectAtIndex:indexPath.row] objectForKey:@"facebook_id"]; return cell; } 

//役立つと思いますか? – Jaimish

+1

クラッシュを引き起こしているのは、どのラインですか? 'FriendsData'メソッドとは何ですか?なぜ' cellForRowAtIndexPath'から呼び出されますか? – rmaddy

+0

無関係ですが、なぜ 'cellForRowAtIndexPath'が呼び出されるたびにテーブルビューの' rowHeight'を設定しますか? – rmaddy

答えて

-2

plzこのコードを使用してください。私はそれはあなたcellforrowatindexpathでその関数の仕事が何であるかをテーブルビューセル用

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 300.0; 
} 
+0

1)辞書からオブジェクトを取得するために 'valueForKey:'を使わないでください。 'objectForKey:'を使用してください。 2)すべての行が同じ高さであれば、 'heightForRowAtIndexPath'を実装しないでください。 'viewDidLoad'に' self.tableView.rowHeight = 300; 'を設定するだけです。 – rmaddy

+1

さらに重要なことは、この回答がどのようにクラッシュを解決するのか?コードを回答として投稿するだけではありません。問題が何だったのか、その答えがどのように問題を解決するのかを説明します。 – rmaddy

+0

ビュービューの行の高さをviewDidLoadで設定することができます –

関連する問題