2014-11-15 3 views
-1

Я сделал приложение iOS, в котором я использую NSUserDefaults. Если приложение закрыто из фона, я хочу удалить строки, которые хранятся в NSUserDefaults. Может кто-нибудь дать мне решения для поиска приложения закрывается от фона.Приложение iOS закрыто от фона

+0

Что вас означает «закрыто»? Значит, вы хотите очистить «NSUserDefaults», если пользователь принудительно покидает приложение? – rmaddy

+0

yes @rmaddy .... –

+3

u может очистить ваши NSUserDefaults двумя способами, одним ** applicationWillTerminate ** другим ** doneFinishLaunchingWithOptions ** вызывается только в начальный момент –

ответ

1

Вы не получаете уведомления, когда ваше приложение удаляется из фонового режима. Приложение убито ОС без каких-либо предупреждений.

Когда ваше приложение входит в фон, у вас нет способа узнать, будет ли он запущен или просто вернуться на передний план.

Также зачем вам это нужно? если вы сохраните что-то в NSUSerDefaults, то он должен быть постоянным. Если возможно, дайте нам знать ваш сценарий, где вам требуется эта функция, чтобы мы могли предоставить вам другой подход.

+0

'applicationWillTerminate' для вашего первого предложения ... –

+2

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

+1

Да, я тестировал приложениеWillTerminate не называется – thavasidurai

1

и может очистить NSUserDefaults в 2 пути, один applicationWillTerminate еще один didFinishLaunchingWithOptions вызывается в начальный момент времени только

// if u terminated your application surly it remove the all keys and other local DB 

- (void)applicationWillTerminate:(UIApplication *)application 
{ 


[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"addyourkeys"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

} 

выбор №: 2

// it is called only initially time , u can also follow your work at here.. but no need at here the applicationWillTerminate will follow the work 

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 


[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"addyourkeys"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

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