Zurück wieder mit einer noob Frage.Diese Klasse ist nicht Schlüssel-Code-kompatibel für den Schlüssel UserEmailAdresLogin
Aus irgendeinem Grund habe ich die folgende Fehlermeldung erhalten:
2017.07.25 14: 29: 00.589401 + 0200 Yiives [1416: 534.883] *** Beenden app aufgrund nicht abgefangene Ausnahme 'NSUnknownKeyException', Grund: '[setValue: forUndefinedKey:]: Diese Klasse ist für den Schlüssel UserEmailAdresLogin nicht mit Schlüsselwerten codiert.'
Jetzt bin ich Weg zu grün, um das Problem auf eigene Faust zu sehen, also bitte erleuchte mich.
Es lässt mich nicht laden die Login-Ansicht. Also, wie kann ich machen es möglich: D
ich den folgenden Code:
import UIKit
class LoginViewController: UIViewController {
@IBOutlet weak var BackgroundButton: UIButton!
@IBOutlet weak var UserEmailAdresInput: UITextField!
@IBOutlet weak var UserPasswordInput: UITextField!
@IBOutlet weak var UserLogin: UIButton!
@IBOutlet weak var UserForgotPassword: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func CloseLogin(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
@IBAction func Login(_ sender: Any) {
let UserEmail = UserEmailAdresInput.text
let UserPassword = UserPasswordInput.text
let UserEmailStored = UserDefaults.standard.string(forKey: "UserEmail");
let UserPasswordStored = UserDefaults.standard.string(forKey: "UserPassword");
if(UserEmailStored == UserEmail){
if(UserPasswordStored == UserPassword){
//Login is succesfull
UserDefaults.standard.set(true, forKey: "UserLoggedIn")
UserDefaults.standard.synchronize();
}
}
}
}
If you need the source where the data is bein inserted:
import UIKit
class EntryViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var UserEmailAdresInput: UITextField!
@IBOutlet weak var UserPasswordInput: UITextField!
@IBOutlet weak var UserPasswordInputRepeated: UITextField!
@IBOutlet weak var UserSignUp: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.UserEmailAdresInput.delegate = self
self.UserPasswordInput.delegate = self
self.UserPasswordInputRepeated.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Hide Keyboard upon Touch
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){
self.view.endEditing(true)
}
//Hide Keyboard upon Return Key
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == UserEmailAdresInput{
UserEmailAdresInput.resignFirstResponder()
} else if textField == UserPasswordInput{
UserPasswordInput.resignFirstResponder()
} else {
UserPasswordInputRepeated.resignFirstResponder()
}
return true
}
@IBAction func SignUp(_ sender: Any) {
let UserEmail = UserEmailAdresInput.text;
let UserPassword = UserPasswordInput.text;
let UserPasswordRepeated = UserPasswordInputRepeated.text;
//Check if fields are filled in correctly
if(UserEmail?.isEmpty == true || UserPassword?.isEmpty == true || UserPasswordRepeated?.isEmpty == true){
displayAlertMessage(userMessage: "Alle velden moeten ingevuld worden");
return;
}
if UserEmail?.range(of: "@") == nil{
displayAlertMessage(userMessage: "Vul een legitiem emailadres in");
return;
}
if (UserPassword?.characters.count)! < 5{
displayAlertMessage(userMessage: "Wachtwoord moet langer zijn dan 5 karakters");
}
if(UserPassword != UserPasswordRepeated){
displayAlertMessage(userMessage: "Wachtwoorden zijn niet gelijk");
return;
}
//Store Data
UserDefaults.standard.set(UserEmail, forKey: "UserEmail");
UserDefaults.standard.set(UserPassword, forKey: "UserPassword");
UserDefaults.standard.synchronize();
//SignUp Succesfull
var Alert = UIAlertController(title:"Succesvol aangemeld!", message: "Ga naar je email inbox om je aanmelding te voltooien", preferredStyle: UIAlertControllerStyle.alert);
let OkAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.default, handler: nil);
Alert.addAction(OkAction);
self.present(Alert, animated: true, completion: nil)
}
func displayAlertMessage(userMessage:String){
var Alert = UIAlertController(title:"Melding", message: userMessage, preferredStyle: UIAlertControllerStyle.alert);
let OkAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.default, handler: nil);
Alert.addAction(OkAction);
self.present(Alert, animated: true, completion: nil)
}
}
Überprüfen Sie Ihr Storyboard und Ihre E-Mail-Adresse. Du hast keine Filiale namens UserEmailAdresLogin in deinem Code, aber offensichtlich hat dein Storyboard sie. Haben Sie zuvor eine Filiale mit dem Namen UserEmailAdresLogin erstellt und diese dann gelöscht? aber vergessen zu löschen von SB? –
Überprüfen Sie Ihr Storyboard Sie müssen über eine Verknüpfung in Ihrem Storyboard verfügen, die aus Ihrem zugehörigen Code entfernt wurde –
Nein, nicht wirklich. Das war alles was ich getan habe. Aber ich werde es überprüfen –