ios - error with error handling when registering -
when try else statement code brakes , gives me error "use of unresolved identifier 'error". how fix , still have uialert?
@ibaction func registertapped(_ sender: any) { print("tapped") let namec = nametextfield.text if let email = emailtextfield.text, let pass = passwordtextfield.text, let name = (namec?.capitalized.isempty)! ? nil:namec?.capitalized { firauth.auth()?.createuser(withemail: email, password: pass, completion: { (user, error) in if user != nil { //user found let interval = nsdate().timeintervalsince1970 let date = date(timeintervalsince1970: interval) let dateformatter = dateformatter() dateformatter.dateformat = "dd/mm/yyyy/hh/mm/ss" // can change date format whatever wants let datestring = dateformatter.string(from: date) print(datestring) self.refd?.child("users").child((user?.uid)!).setvalue(["email": email, "name": name, "user created": datestring]) print("user created , added database", email, name, datestring) self.performsegue(withidentifier: "registertologin", sender: self) } }) } else { print(error!) let alert = uialertcontroller(title: "error creating account ", message: "\(error!.localizeddescription)", preferredstyle: uialertcontrollerstyle.alert) alert.addaction(uialertaction(title: "dismiss", style: uialertactionstyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } } }
error not within code block, in else statement, error variable doesn't exist, code should probbaly more this:
@ibaction func registertapped(_ sender: any) { print("tapped") let namec = nametextfield.text if let email = emailtextfield.text, let pass = passwordtextfield.text, let name = (namec?.capitalized.isempty)! ? nil:namec?.capitalized { firauth.auth()?.createuser(withemail: email, password: pass, completion: { (user, error) in if error != nil { print(error!) let alert = uialertcontroller(title: "error creating account ", message: "\(error!.localizeddescription)", preferredstyle: uialertcontrollerstyle.alert) alert.addaction(uialertaction(title: "dismiss", style: uialertactionstyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } else { //check if necessary, probbaly if user nil means error variable set something, making check unnecessary. if user != nil { //user found let interval = nsdate().timeintervalsince1970 let date = date(timeintervalsince1970: interval) let dateformatter = dateformatter() dateformatter.dateformat = "dd/mm/yyyy/hh/mm/ss" // can change date format whatever wants let datestring = dateformatter.string(from: date) print(datestring) self.refd?.child("users").child((user?.uid)!).setvalue(["email": email, "name": name, "user created": datestring]) print("user created , added database", email, name, datestring) self.performsegue(withidentifier: "registertologin", sender: self) } else { self.showalertview(withtitle: "error", andmessage: "user not found") } } }) } else { self.showalertview(withtitle: "missing input", andmessage: "please make sure email , password fields filled.") } } } func showalertview(withtitle atitle: string, andmessage amessage: string) { let alertcontroller = uialertcontroller(title: atitle message: amessage, preferredstyle: .alert) let actionok = uialertaction(title: "ok", style: .default, handler: nil) alertcontroller.addaction(actionok) //this part of code needs run on main thread since alert might //executed form registration code block, might on background thread dispatchqueue.main.async { self.presentviewcontroller(alertcontroller, animated: true, completion: nil) } }
Comments
Post a Comment