Сохранение состояния сеанса в приложении для iPhone

Привет, я хочу сохранить сеанс в своем приложении для iphone. Если приложение переходит в фоновое состояние или приложение неактивно, мне нужно переместить пользователя на экран входа в систему. Как сделать это?

Я видел этот пример, но он не помогает мне решить проблему:

Как поддерживать сеанс для iphone


person Vignesh Babu    schedule 18.04.2011    source источник
comment
Помог ли мой ответ? вы приняли и снова удалили из принятых по какой-то конкретной причине?   -  person Janak Nirmal    schedule 30.04.2012


Ответы (1)


Вы можете следовать аналогичной концепции. Когда пользователь входит в систему, введите что-то вроде NSUserDefaults, например

[[NSUserDefaults standardUserDefaults] setValue:@"ABCDEFGHIJK" forKey:@"SessionKey"];

и в делегате приложения есть один метод, называемый

(void) applicationDidEnterBackground:(UIApplication *)application

который будет вызываться, когда приложение переходит в фоновый режим. Просто удалите эту установленную переменную для ключа сеанса. И пока приложение снова запускается, просто проверьте условие и перенаправьте пользователя на нужный экран.

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

person Janak Nirmal    schedule 18.04.2011
comment
Привет, спасибо, что поделились, когда приложение переходит в фоновый режим, мне нужно проверить время неактивного сеанса, а не время входа в систему. Если я использую NSTimer внутри applicationDidEnterBackground, будет ли он работать? - person Vignesh Babu; 18.04.2011
comment
Вы можете сделать это, как добавить время запуска приложения в applicationdidfinishlaunchingwith option. Возьмите его как date1 как текущую дату/время. И тогда вы можете рассчитать время между запуском приложения и переходом в фоновый режим. Возьмите другую дату2 с текущей датой/временем. Это можно сделать с помощью метода timeIntervalSinceDate класса NSDate. Просто просмотрите документацию, и ваша цель будет работать так, как вы хотите. Удачи. Если это работает для вас, пожалуйста, отметьте этот вопрос как выполненный. Спасибо. - person Janak Nirmal; 18.04.2011