2012-01-09 3 views
0

Я создаю хранилище изображений для своего приложения, в основном это синглтон, который управляет загрузкой изображений и кешированием (два уровня NSCache и основные данные).Как создать «Магазин изображений» в iOS?

Мне было интересно, могу ли я использовать блоки вместо делегатов, я имею в виду, что может быть несколько запросов для одного и того же изображения, я хочу обновить все ожидающие запроса запросы путем «запуска» блока, который они предоставили при вызове.

Можно ли сохранить блок в NSArray и позвонить ему, когда я скачал изображение? Имеет ли это смысл?

Что делать, если блок затем запускается, когда вызывающий объект был освобожден?

Благодаря

ответ

0

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

Каждый раз, когда изображение загружается ваш синглтон должен сделать что-то вроде

NSDictionary *info = [NSDictionary dictionaryWithObjectsAndKeys: 
         image, @"image", 
         originalURL, @"imageURL", 
         nil]; 

[[NSNotificationCenter defaultCenter] postNotificationName:@"imageDownloaded" object:self userInfo:info]; 

и тех, кто заинтересован в том, что изображение должно получить уведомление об этом.

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

Смежные вопросы