2015-09-23 1 views
0

Я хочу создать простую кнопку LogOut с синтаксическим разбором, но текущий пользователь не получает нуль.Текущий пользователь не nil после вызова PFUser.logOut() parse, swift2

PFUser.logOut() 
var currentUser = PFUser.currentUser() // this should be nil but it isn't :(
print(currentUser) 

Я также попытался:

PFUser.logOutInBackground() 
var currentUser = PFUser.currentUser() // this is also not nil :(

Так что, когда я напечатать CurrentUser это не ноль, как и должно быть. Это:

Optional(<PFUser: 0x7f8d99dd2320 , objectId: new, localId: local_58d62becf7a6f1dc> { 

})

Так что я думаю, что приложение создает новый пользователь ?!

ответ

0

Проверьте, чтобы увидеть, если у нас есть CurrentUser в AppDelegate в методе didFinishLaunchingWithOptions

let user = PFUser.currentUser() 
     if user == nil 
     { 
      // present loginViewController 
     } 
     else 
     { 
      print("user is \(user?.username)") // <--- who is currently 
      // show any viewcontroller 
     } 

Ваша кнопка выхода из системы необходимо отправить пользователю вернуться к loginViewController после авторизации из вашего приложения. Пример:

 @IBAction func Logout(sender:UIButton) 
     { 
      PFUser.Logout() 
      let LoginViewController = storyboard.instantiateViewControllerWithIdentifier("storyBoardID") 
      self.presentViewController(LoginViewController, animated: true, completion: nil) 
     } 

Итак Из Вход View Controller, они могут использовать свои учетные данные для входа в обратно в приложение, то CurrentUser не возвращает ноль

+0

Но я хочу, чтобы он был ник, потому что, если я реализую ваш код, и пользователь закроет приложение перед повторным входом в систему, текущий пользователь не будет равен нулю, поэтому он снова войдет в систему –

+0

, поэтому поэтому вы убедитесь, что в app delegate, чтобы узнать, является ли currentUser нулевым или нет. Если null присутствует в Login, если не отображается какой-либо контроллер представления – Lamar

+0

Да, но проблема в том, что PfUser.currentUser() никогда не получает нуль –

0

Установить тип возвращаемого функции (выход) как опционный тип. Только optionals имеет возможность удерживать значение nil. Вот пример того, что я хочу сказать вам

func loggedOut() -> Int? { 

    // check you conditions here ex: 
    if score > 0 { 
    return score 
    } else { 
return nil 
    } 
} 
+0

Извините, но это не сработало –

+0

Здесь мое намерение рассказать вам об отредактированном коде, взгляните на это –

3

Попробуйте закомментировать следующую строку кода в файле AppDelegate.swift -

PFUser.enableAutomaticUser() 

enableAutomaticUser() будет войти анонимный пользователь один раз вы вызываете PFUser.logOut(), а имя пользователя для анонимного пользователя - nil.

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

  • Нет связанных вопросов^_^