Twitter のユーザー タイムラインを表示するアプリを開発中です。にはUITableView
、つぶやき、時間、およびプロファイル アイコンを持つセルが含まれます。ただし、リツイートには元の投稿者の画像ではなく、ユーザーのプロフィール画像が含まれます。JSON ファイルは、プロファイル画像の URL コンテンツを持つretweeted_status
と呼ばれるキーを持つと呼ばれる新しいキーを追加します。user
それが存在するかどうかを確認する条件文を作成するにはどうすればよいですretweeted_status
か。そうでない場合は、以下のコードのように画像を取得します。
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tweetTableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
dispatch_queue_t downloadQueue = dispatch_queue_create("image downloader", NULL);
dispatch_async(downloadQueue, ^{
NSDictionary *tweet =_dataSource[[indexPath row]];
NSDictionary *tweetSubtitle = _dataSource[[indexPath row]];
//NSURL *retweetURL = [NSURL URLWithSting: [[tweet objectForKey:@"retweeted_status"] objectForKey:@"user"] objectForKey:@"profile_image_url"];
NSURL *imageURL = [NSURL URLWithString:[[tweet objectForKey:@"user"]objectForKey:@"profile_image_url"]];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
//Need conditional function to find if retweet
//NSLog(@"%@",imageData);
dispatch_async(dispatch_get_main_queue(), ^{
cell.textLabel.text = tweet[@"text"];
cell.detailTextLabel.text = tweetSubtitle[@"created_at"];
cell.imageView.image = [UIImage imageNamed:@"placeholder"];
cell.imageView.image = [UIImage imageWithData:imageData];
});
});
//NSLog(@"screen name %@", tweetSubtitle[@"screen_name"]);
return cell;
}