программно очищать вторичный кеш на iPhone - PullRequest
1 голос
/ 23 марта 2011

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

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

Заранее спасибо.Suse.

Ответы [ 2 ]

4 голосов
/ 23 марта 2011

Мой ответ будет таким же, как в случае с Kirky Todds, но не используйте applicationWillTerminate - это не очень хорошая стратегия на iOS4 + с многозадачностью, потому что этот метод часто не вызывается - приложение будет фоновым, и затем может быть выгружен из памяти, если запущены другие приложения (или телефон выключен / перезапущен), без вызова applicationWillTerminate. (ИЛИ это снова будет основано. В любом случае, ваш кеш не очищается.)

Вместо этого рассмотрите возможность очистки при запуске (applicationDidFinishLaunching) или в applicationWillEnterForeground. Последний будет вызываться чаще, потому что первый вызывается только при фактическом правильном запуске приложения (а не при возобновлении работы с фоном).

Для получения дополнительной информации о фоновом режиме и сгенерированных событиях см .:

http://www.cocoanetics.com/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/

3 голосов
/ 23 марта 2011

Очистите их в вашем методеWillTerminate приложения.

- (void)applicationWillTerminate:(UIApplication *)application
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSArray *imagesFiles = [fileManager contentsOfDirectoryAtPath:saveDirectory error:error];
    for (NSString *file in imagesFiles) {
        error = nil;
        [fileManager removeItemAtPath:[saveDirectory stringByAppendingPathComponent:file] error:error];
        /* do error handling here */
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...