MGTwitterEngine - эффективный способ получения и кэширования изображений профиля - PullRequest
3 голосов
/ 16 января 2010

Какой самый эффективный способ получить и кэшировать изображение профиля для пользователя с помощью MGTwitter?

Наша проблема в настоящее время заключается в том, что должен быть вызов getUserInformationFor для получения URL-адреса изображения, затем getImageAtURL, что приводит к двум вызовам на сервер. В настоящее время нам просто нужна информация об изображении, поэтому ее избыточно загружать всю остальную информацию. Если вы помните, что мы можем выполнить 20-30 таких вызовов одновременно (например, чтобы получить список изображений профиля пользователя), это станет довольно медленным.

Во-вторых, каков наиболее эффективный способ кэширования этого изображения, чтобы его не нужно было загружать каждый раз (мы не против предположить, что изображение профиля никогда не изменится), в настоящее время мы просто запись в NSTevenDirectory () с именем пользователя Twitter в качестве имени файла, а затем для каждого запроса Twitter проверяется, существует ли имя файла в этом каталоге. Есть ли лучший, более эффективный подход?

Ответы [ 2 ]

0 голосов
/ 18 июля 2012

Я бы написал свой собственный код, используя NSURLConnection (или ASIHTTPRequest), чтобы загрузить изображение профиля с URL-адреса, указанного в твите NSDictionary.

Сохраните загруженные изображения в Cache Directory. Имя файла должно быть примерно таким: .png (все изображения из Twitter обычно png's). Таким образом, для поиска изображений в кэше не требуется NSDictionaries для хранения всех имен изображений.

Я бы также порекомендовал добавить контролируемую пользователем очистку этого кэша, так как он может увеличиться до больших размеров и может оказаться неточным, если пользователь изменит изображения профиля.

Восстановление кеша может быть выполнено, когда кешированному образу исполнилось два дня, а пользователь подключен к WiFi.

0 голосов
/ 09 декабря 2010

Если вы хотите сделать что-то за пределами функциональности, доступной в MGTwitterEngine, вам, вероятно, придется использовать сырой API Twitter. Попробуйте эту страницу для некоторой помощи.

Кэширование, вероятно, должно выполняться в NSCachesDirectory. Срок его службы может быть больше, чем NSTemporaryDirectory, и это рекомендуемое место для хранения кэшированных данных. Эффективность в этом случае, вероятно, означает загрузку один раз, сохранение изображения, чтобы вы могли позже легко идентифицировать его, определить, существует ли оно, и определить, нужна ли загрузка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...