JSON Feed для Twitter для URL изображения профиля - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь найти способ загрузить файл изображения для Twitter JSON URL асинхронно, как LazyTableImages. Файл 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];

1 Ответ

0 голосов
/ 04 августа 2011

Я использую класс ImageLoadingOperation из примера кода Stanford CS193P.

Google найдет для него различные проекты.

Если вы найдете более современный способ, например, с использованием блока, пожалуйста,опубликуйте любые результаты.

Было бы неплохо узнать наиболее эффективный способ сделать это с последним SDK.

edit - links

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter isстраница

В этом проекте используется многопоточный метод для загрузки фотографий с flickr.Вот что я использовал: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/sample_code/11-ThreadedFlickrTableView.zip

ImageLoadingOperation является подклассом NSOperation.Когда ячейка табличного представления запрашивает новое изображение, она добавляет URL-адрес в очередь и загружается в локальный NSDictionary в фоновом потоке.Когда он загружен, он использует executeSelectorOnMainThread для перезагрузки табличного представления в основном потоке, который захватывает изображение из словаря.

Надеюсь, это поможет.

...