#ios #swift
#iOS #swift
Вопрос:
Я получаю разрешение от пользователя только при первом запуске, и если он / она одобряет, я хочу выполнить некоторые функции. Я использую логическую переменную, если он / она нажмет ok, переменная будет true и выполнит функции, но моя проблема в том, что при втором запуске приложения я не знаю, одобрил ли пользователь или нет.
Здесь я проверяю, является ли это первым запуском
if (isFirstLaunch()){
self.AlertOnce(Message: " hello may i use ....")
}
Это код предупреждающего сообщения:
func AlertOnce (Message: String){
let alert1 = UIAlertController(title: "أهلا بك", message: Message, preferredStyle: UIAlertController.Style.alert)
alert1.addAction(UIAlertAction(title: "موافق", style: UIAlertAction.Style.default, handler: { ACTION in
self.saveQuestion = true
print("OK")
}))
alert1.addAction(UIAlertAction(title: "غير موافق", style: UIAlertAction.Style.destructive, handler:{ ACTION in
self.saveQuestion = false
print("Not OK")
}
))
self.present(alert1, animated: true, completion: nil)
}
И это функция:
if (saveQuestion){
ref.child("QuestionOfUsers").childByAutoId().setValue(label1.text)
label1.text = ""
}
Ответ №1:
Если я правильно понял, что вам нужно, это постоянное хранилище, например, база данных, или userdefaults.
Пример для сохранения:
let value = true
UserDefaults.standard.set(value, forKey: "saveQuestion")
Пример получения ранее сохраненного значения:
let value = UserDefaults.standard.object(forKey: "saveQuestion") as? Bool
Надеюсь, это удовлетворит ваши потребности.
Комментарии:
1. «UserDefaults.standard.synchronize()» не требуется
2. Да, я только что понял, что оно устарело. Это для заметки.
Ответ №2:
Сохраните разрешение пользователя в пользовательских настройках по умолчанию, чтобы на него можно было ссылаться при всех запусках приложений.
func AlertOnce (Message: String){
let alert1 = UIAlertController(title: "أهلا بك", message: Message, preferredStyle: UIAlertController.Style.alert)
alert1.addAction(UIAlertAction(title: "موافق", style: UIAlertAction.Style.default, handler: { ACTION in
UserDefaults.standard.set(true, forKey: "SaveQuestion")
print("OK")
}))
alert1.addAction(UIAlertAction(title: "غير موافق", style: UIAlertAction.Style.destructive, handler:{ ACTION in
UserDefaults.standard.set(false, forKey: "SaveQuestion")
print("Not OK")
}
))
self.present(alert1, animated: true, completion: nil)
}
Пользовательские значения по умолчанию можно прочитать следующим образом
let saveQuestion = UserDefaults.standard.bool(forKey: "SaveQuestion")
if (saveQuestion){
ref.child("QuestionOfUsers").childByAutoId().setValue(label1.text)
label1.text = ""
}
Комментарии:
1. Нет … вам не нужно ничего делать, пока приложение завершается .. это исключение не имеет ничего общего с этим кодом