2011-08-04 16 views
0

Twitter JSON URLの画像ファイルをLazyTableImagesのように非同期的にダウンロードする方法を理解しようとしています。 JSONファイルは、次のようになります。Twitterのプロフィール画像URLのJSONフィード

{ 
"completed_in": 0.132, 
"max_id": 99177223541628930, 
"max_id_str": "99177223541628928", 
"next_page": "?page=2&max_id=99177223541628928&q=mobile&rpp=1", 
"page": 1, 
"query": "mobile", 
"refresh_url": "?since_id=99177223541628928&q=mobile", 
"results": [ 
    { 
     "created_at": "Thu, 04 Aug 2011 17:57:47 +0000", 
     "from_user": "twhp_Bastary", 
     "from_user_id": 235609046, 
     "from_user_id_str": "235609046", 
     "geo": { 
      "coordinates": [ 
       -2.6766, 
       118.8793 
      ], 
      "type": "Point" 
     }, 
     "id": 99177223541628930, 
     "id_str": "99177223541628928", 
     "iso_language_code": "en", 
     "metadata": { 
      "result_type": "recent" 
     }, 
     "profile_image_url": "http://a1.twimg.com/profile_images/1431110298/315762105_normal.jpg", 
     "source": "<a href="http://ubersocial.com" rel="nofollow">ÜberSocial for BlackBerry</a>", 
     "text": "RT @DamnItsTrue: Good friends are priceless! #DamnItsTrue http://myloc.me/m9Kot", 
     "to_user_id": null, 
     "to_user_id_str": null 
    } 
], 
"results_per_page": 1, 
"since_id": 0, 
"since_id_str": "0" 

}

キーprofile_image_URLは、スクロールのクライアントエクスペリエンスを殺さないようにテーブルビューをスクロールしながら非同期で画像をロードする必要があります。 JSONのロードに使用されるコードは、各タグをキーとしてNSDictionaryを使用しています。

NSDictionary *tweets = [twitter objectAtIndex:[indexPath row]]; 

cell.textLabel.text = [tweets objectForKey:@"text"]; 
cell.textLabel.font = [UIFont systemFontOfSize:14]; 

NSString *URL = [tweets objectForKey:@"profile_image_url"]; 
NSURL *url = [NSURL URLWithString:[tweets objectForKey:@"profile_image_url"]]; 
NSData *Tweetdata = [NSData dataWithContentsOfURL:url]; 
cell.imageView.image = [UIImage imageWithData:Tweetdata]; 

答えて

0

私は、Stanford CS193PサンプルコードのImageLoadingOperationクラスを使用します。

Googleはそれを使用してさまざまなプロジェクトを見つけるでしょう。

ブロックを使用して最新の方法を見つけたら、結果を投稿してください。

最新のSDKでこれを行う最も効率的な方法を知っておくとよいでしょう。

編集 - リンク

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winterは、このプロジェクトは、Flickrの写真から年代をダウンロードするためのネジ付きメソッドを使用しています

ページです。これは私が使用したものです: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/sample_code/11-ThreadedFlickrTableView.zip

ImageLoadingOperationはNSOperationのサブクラスです。 Tableviewセルが新しいイメージを要求すると、キューにURLが追加され、バックグラウンドスレッドのローカルNSDictionaryにダウンロードされます。そのダウンロード時にperformSelectorOnMainThreadを使用して、画像を取得するメインスレッド上のテーブルビューを辞書からリロードします。

希望します。

+0

ここで、私はあなたがURLを持っていることを意味する参照を見つけましたか> – lifemoveson

+0

ありがとう。ロジックを試してみましょう! – lifemoveson

関連する問題