Как проверить, если пользователь уже зарегистрировался или нет при регистрации в swift - PullRequest
1 голос
/ 02 ноября 2019

Я пытаюсь при регистрации зарегистрировать пользователя в моем приложении или нет. При каждой успешной регистрации я получаю UID в LoginViewcontroller url и сохраняю этот UID в оболочке цепочки для ключей. Я получаю значение UID в RegistrationViewController regesterservice, но когда я пытаюсь проверить этот UID, я получаю nil все время. Почему..? Как проверить, если пользователь уже зарегистрирован или нет? Пожалуйста, помогите мне.

В LoginViewcontroller службе входа в систему я сохраняю значение UID следующим образом:

self.Uid = json["id"] as? String
KeychainWrapper.standard.set(emailL ?? "", forKey: "user_email")
KeychainWrapper.standard.set(self.Uid!, forKey: "Uid")

Здесь, в RegisterViewController, я получаю значение UID. Но для уже зарегистрированных лиц, я также получаю `ноль в UID. Почему?

do {
    let userId: String? = KeychainWrapper.standard.string(forKey: "Uid")
    print("login userid \(userId)")

    if userId != nil{
        AlertFun.ShowAlert(title: "Title", message: "user exist", in: self)
    } else {
        let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: Any]
        print("go to otp service!!!")
        self.otpField = json["otp"] as? Int
    }
} catch {
    print("error")
}

Как я могу запросить UID уже зарегистрированного человека?

1 Ответ

0 голосов
/ 02 ноября 2019

В первом блоке кода переменная Uid из json отличается от свойства Uid, устанавливаемого в оболочке цепочки для ключей.

var Uid = json["id"] as? String // `var Uid` is a local variable
KeychainWrapper.standard.set(self.Uid!, forKey: "Uid") // `self.Uid` is a property on self

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

self.Uid = json["id"] as? String
KeychainWrapper.standard.set(self.Uid!, forKey: "Uid")

edit:

Извините, я не совсем понимаю, что вы говорите. Но я бы попытался установить точку останова и отладить, как это, и посмотреть, какой оператор возвращает nil:

po json
po json["id"]
po json["id"] as? String
po self.Uid
po KeychainWrapper.standard.string(forKey: "Uid")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...