我试图找出像LazyTableImages一样异步下载Twitter JSON 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需要在滚动tableview时异步加载图像,这样就不会破坏客户端滚动体验。 用于加载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 :(得分: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来重新加载主线程上的tableview,该主线程从字典中获取图像。
希望它有所帮助。