PFUser.currentUser() никогда не равен нулю

У меня странное поведение со Swift и Xcode 7. Этого не произошло в Xcode 6. Я отключил анонимных пользователей в Parse. Я вышел из текущего пользователя. Каждый раз, когда я возвращаюсь к экрану входа в систему ... независимо от того, выхожу ли я из системы в фоновом режиме или даже если я выхожу из системы, а затем перезапускаю приложение, PFUser.currentUser() никогда не равняется нулю. Он всегда позволяет пользователю попасть на главный экран. Я даже пытался выйти из системы прямо перед выполнением следующего оператора, но PFUser.currentUser() все еще не равен нулю!

У кого такая же проблема? Это начало происходить после обновления.

if PFUser.currentUser() != nil {
                // Do stuff with the user
                let storyboard = UIStoryboard(name: "main", bundle: nil)
                let controller = storyboard.instantiateViewControllerWithIdentifier("mainVC")
                self.presentViewController(controller, animated: true, completion: nil)

            }

person Ronaldoh1    schedule 19.09.2015    source источник


Ответы (2)


Попробуйте это:

var currentUser = PFUser.currentUser()?.username

if currentUser != nil {
    // Do your stuff here
}
person Abhinav    schedule 19.09.2015
comment
#Деньги! Спасибо, человек, который сделал трюк. Просто измените var на let. Это сработало для меня. PFUser.currentUser() не равен нулю, но когда в этот момент имя пользователя равно нулю, поскольку оно не было сохранено. - person Ronaldoh1; 19.09.2015
comment
Круто, рад, что помогло. Не могли бы вы принять ответ, чтобы другие также могли получить пользу. Ваше здоровье :)! - person Abhinav; 19.09.2015

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

    let currentUser = PFUser.currentUser()?.objectId
if currentUser != "" {

}
person Kegham K.    schedule 20.01.2016