Я использовал фотогалерею Three20 в своем приложении, и она работала очень хорошо, выглядела аккуратно и красиво. И, в принципе, мне не нужно беспокоиться обо всех вещах, связанных с извлечением фотографий с сервера, так как Three20 извлек, управлял и кэшировал данные для меня, и все это делается за кулисами.
Именно тогда я начал замечать этот магический механизм кэширования, реализованный в three20, который называется TTURLCache . В его заголовочном файле я нахожу следующие методы интерфейса:
/**
* Stores a data on disk.
*/
- (void)storeData:(NSData*)data forURL:(NSString*)URL; //method 1
- (void)storeData:(NSData*)data forKey:(NSString*)key;
/**
* Stores an image in the memory cache.
*/
- (void)storeImage:(UIImage*)image forURL:(NSString*)URL; //method 2
/**
* Stores an etag value in the etag cache.
*/
- (void)storeEtag:(NSString*)etag forKey:(NSString*)key; //method 3
Мои вопросы:
- Метод 1 и метод 2 в вышеприведенном коде: способны ли они только хранить данные или способны как извлекать, так и хранить?
- Что такое этаг в методе 3?
- Метод 1 говорит, что он будет хранить данные на диске, а метод 2 говорит, что он будет хранить изображение в памяти. Если я буду использовать метод 2 для сохранения изображения, оно будет потеряно после того, как я убью и перезапущу свое приложение?
Заранее большое спасибо.