Удалить данные, когда приложение убито в фоновом режиме.

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

Я пробовал использовать этот метод:

- (void)applicationWillTerminate:(UIApplication *)application

Но это не работает. Может кто-нибудь предложить мне, как это сделать?


person user3081522    schedule 18.03.2014    source источник
comment
Метод applicationWillTerminate будет вызываться в следующих сценариях: приложение получает предупреждения о памяти, приложение принудительно закрывается из-за многозадачности, подобной этой. Если вы перестанете запускать приложение в XCode, метод applicationWillTerminate не будет вызываться и данные не будут сохранены.   -  person Natarajan    schedule 18.03.2014
comment
@Natarajan, можете ли вы подсказать мне, как я могу удалить данные, когда приложение закрывается в фоновом режиме?   -  person user3081522    schedule 18.03.2014
comment
Обратитесь также к этой ссылке, она поможет больше stackoverflow.com/questions/17840893/   -  person Natarajan    schedule 18.03.2014


Ответы (3)


Не уверен, почему вам нужно специально стирать данные при завершении, но вот что нужно учитывать:

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

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

Если приложение будет принудительно закрыто, флаг не будет записан по причине принудительного выхода.

ТОГДА, когда приложение запускается, оно может искать флаг. Если флага нет, приложение знает, что какие-либо данные неполны, и может отбросить их (удалить) и начать заново.

Надеюсь это поможет.

person nsdebug    schedule 18.03.2014

applicationWillTerminate: в основном никогда не вызывается, и вам больше не следует на него полагаться.

Приложение не получает никакого обратного вызова, когда оно убито, поэтому вы ничего не можете сделать. Вам нужно выбрать другой подход, основанный на фактических требованиях пользователя. Это может включать шифрование/отсутствие определенных данных на диске (только когда-либо в памяти)/и т.д...

person Wain    schedule 18.03.2014

Я знаю, я очень опаздываю на вечеринку, но, если вы можете жить с данными, «торчащими» до следующего запуска приложения, вы можете удалить/очистить данные в application(_:didFinishLaunchingWithOptions).

person Surpher    schedule 10.07.2018