2015-09-06 2 views
1

Я работаю над быстрым iPhone-приложением, использующим Parse для бэкэнд, и когда я перезапускаю приложение, currentUser не распознается и возвращает nil перенаправление на страницу входа. После того, как я вернусь к пользователю, он останется включенным, пока я не остановлю приложение.PFUser currentUser возвращает nil после перезапуска приложения

if PFUser.currentUser() == nil { 
    //return to the login page 
} else { 
    // perform normal operations 
} 

мне очень интересно, почему это происходит, так как единственное место, у меня есть PFUser.logOut() в функции выхода из системы, которая не находится на начальном контроллере представления, и только вызывается при нажатии кнопки. Заранее спасибо за помощь!

EDIT: Эта проблема возникла сегодня утром. За последние 2 недели у меня не было никаких вопросов относительно автоматического входа в систему с использованием синтаксического анализа. Поэтому я не знаю, что я мог сделать, чтобы вызвать это. Единственный код, который я изменил между прошлой ночью и этим утром, пытался передать данные с одного контроллера вида на popoverViewController, добавив делегатов в мои VC, но с тех пор я их удалил и все еще не понимаю.

+0

Что значит перезагрузка приложения? – Lamar

+0

Используете ли вы локальное хранилище данных Parse? –

+0

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

ответ

1

Я в конечном итоге загрузить последнюю Синтаксическая SDK и решить проблему , Эдди из этого сообщения PFUser currentUser nil after app update также сказал, что возврат к предыдущему Parse SDK также решил проблему.

0

Я думаю, вы должны поместить этот код в AppDelegate в метод applicationDidBecomeActive(), что-то вроде следующего:

func applicationDidBecomeActive(application: UIApplication) 
{ 

    if PFUser.currentUser() == nil{ 
     // show main screen 

     var storyboard :UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     var LoginScreen = storyboard.instantiateViewControllerWithIdentifier("loginShow") as! UIViewController 
     UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(LoginScreen, animated: true, completion: nil) 
    } 

    else 
    { 
     //show login screen 
     var storyboard :UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     var MainScreenNavigation = storyboard.instantiateViewControllerWithIdentifier("TotalMainViewController") as! UIViewController 
     UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(MainScreenNavigation, animated: false, completion: nil) 

    } 

} 
+0

Хорошо, дайте мне сделать снимок – nviens

+0

Он по-прежнему возвращает nil для пользователя и segues на страницу формы входа в систему – nviens

+0

вы вошли в приложение, прежде чем закрывать его? – Lamar