Проблемы с typealias swift - PullRequest
       27

Проблемы с typealias swift

0 голосов
/ 07 октября 2018

Эй, у меня есть код, который использует typealias, чтобы он мог отправлять код ошибки пользователю, когда они не регистрируются правильно, хотя мой псевдоним типа не работает, и это вызывает у меня проблему, что мой класс внезапностановится типом ошибки, когда я использую псевдоним типа. Может кто-нибудь, пожалуйста, скажите мне, почему это происходит.

мой код

import Foundation    
import UIKit
import FirebaseAuth


typealias Completion = (errMsg: String?, data: AnyObject?) -> Void 

class AuthenticationDatabase{


    var database = Database()


    func register(user: [UITextField], onComplete: Completion?)-> String{
        Auth.auth().createUser(withEmail: user[0].text, password:user[1].text) { (user, error) in
            if(error != nil){
                self.handleFirebaseError
            }
        }



    }

    func Login(UserInfo: [String]){

    }
    func logOut(){


    }
    func handleFirebaseError(error: NSError, onComplete:Completion?){
        print(error.localizedDescription)
        if let errorCode = AuthErrorCode(rawValue: error.code){
            switch (errorCode){
            case .errorCodeInvalidEmail:
            onComplete?(errMsg: "Invalid Email", data: nil)
            break
            case .errorCodeWrongPassword:
            onComplete?(errMsg: "invalid Password", data: nil)
            break
            default:
                onComplete?(errMsg: "There was a problem Authenticating. Try again.",data: nil)
            }
        }
    }





}

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

В Swift 3+ метки параметров в замыканиях опущены

typealias Completion = (String?, AnyObject?) -> Void 

(Настоятельно рекомендуется использовать Any вместо AnyObject)

и называть его

onComplete?("Invalid Email", nil) 
0 голосов
/ 07 октября 2018

Изменить Completion на

typealias Completion = (_ errMsg: String?, _ data: AnyObject?) -> Void

ИЛИ

typealias Completion = (String?, AnyObject?) -> Void
...