Как реагировать на неудачную загрузку большого пальца в TTThumbsViewController?

В настоящее время я использую TTThumbsViewController в моем проекте. Я получаю все URL-адреса для TTPhotoVersionLarge и TTPhotoVersionThumbnail из Интернета, поэтому я не могу сказать, будет ли работать URL для изображений большого пальца или нет.

В настоящее время TTThumbsViewController будет просто отображать пустое изображение, если URL-адрес большого пальца не может быть загружен.

Поэтому я хочу получать уведомления, если большой палец не загружается и выполняет дополнительную обработку ошибок, когда это происходит следующим образом:

  1. Попробуйте загрузить URL для TTPhotoVersionLarge
  2. Если это снова не удается, отобразите изображение ошибки (которое входит в комплект)

Я посмотрел в коде Three20, но не могу найти подходящее место, где я могу реализовать эту правильную обработку ошибок.

1 ответ

Библиотека Three20 великолепна, но я обнаружил, что часто трудно изменить части их библиотеки, такие как эта. Например, TTThumbsViewController в основном позволяет вам установить только dataSource, а затем позаботится об остальном. Если вы хотите больше контроля, возможно, посмотрите на код, такой как AQGridView: http://quatermain.tumblr.com/post/528737778/aqgridview-lives-for-my-ipad-dev-camp-hackathon

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

Изменить: В ответ на интенсивное использование TTThumbsViewController вы можете посмотреть на этот метод в TTTHumbsViewController.m:

- (NSString*)URLForPhoto:(id<TTPhoto>)photo {
  if ([photo respondsToSelector:@selector(URLValueWithName:)]) {
    return [photo URLValueWithName:@"TTPhotoViewController"];

  } else {
    return nil;
  }
}

Похоже, что вы должны быть в состоянии указать другое значение там, пока вы можете найти что-то, чтобы добавить к оператору if, определяющему, произошла ли первоначальная загрузка из dataSource.

Другие вопросы по тегам