#swift
#swift
Вопрос:
Когда пользователь регистрируется или входит в систему, у него возникает ошибка, и на выходе он получает эту ошибку «этот класс не совместим с кодированием значений ключа для key containerView». это код входа, также при регистрации возникает та же ошибка, и я уверен, что это правильные коды.
import UIKit
import Firebase
class LoginViewController: UIViewController {
@IBOutlet var Aemeil: UITextField!
@IBOutlet var Apassword: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func login (_ sender : Any){
guard let email = Aemeil.text, let password = Apassword.text
else {
print("Form is not valid")
return
}
Auth.auth().signIn(withEmail: email , password: password , completion: { (user,error) in
if error == nil{
let vc = self.storyboard?.instantiateViewController(withIdentifier: "AHome");
self.present(vc!, animated: true, completion: nil);
print("Home page open")
}
else{
let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "Yes", style: .cancel, handler: nil)
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
}
})
}
}
Комментарии:
1. проверьте в раскадровке, существует ли
containerView
розетка, затем удалите это., Или любая розетка с предупреждающим знаком также удалит это. Вы можете проверить это в инспекторе соединений.2. Весь мой инспектор соединений работает правильно. есть другая причина этой ошибки?
3. Хорошо, происходит сбой приложения после входа в систему, процесса регистрации или сбой при переходе к этому представлению?
4. Я имею в виду, когда вы нажимаете кнопку входа / регистрации?
5. да, когда я нажимаю login / signup, происходит сбой
Ответ №1:
Вы создали привязку из элемента раскадровки к элементу в соответствующем файле swift с именем containerView
. После этого вы удалили containerView
переменную в вашем файле swift, но привязка все еще существует в раскадровке.
Чтобы решить эту проблему, перейдите к своей раскадровке, нажмите на view controller
, как показано ниже:
После этого нажмите на инспектор подключений, чтобы просмотреть все ваши привязки viewcontroller
и удалить привязку из containerView
:
Комментарии:
1. весь мой инспектор соединений работает правильно, мне не нужно ничего удалять. так в чем проблема?
2. Для меня это было проблемой, спасибо за ответ! Он должен быть выше в этом потоке, чтобы больше пользователей действительно прочитали его.
Ответ №2:
Я столкнулся с аналогичной проблемой, я создал segmentview, в котором я сохранил containerView, и удалил segue по умолчанию, который поставлялся вместе с этим представлением контейнера. После этого я переименовал имя контроллера представления контейнера и подключился как show
segue. Это была проблема, из-за которой я столкнулся с этой проблемой. Когда я изменил show segue на Embed
segue, проблема разрешилась.