【问题标题】:Problems with typealias swifttypealias swift的问题
【发布时间】:2018-10-07 10:59:43
【问题描述】:

嘿,我有一个使用 typealias 的代码,这样当他们没有正确注册时,尽管我的 type alias 不起作用,它可以向用户发送错误代码,它给我的问题是我的班级突然当我使用类型别名时变成错误类型有人可以告诉我为什么会发生这种情况。

我的代码

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)
            }
        }
    }





}

【问题讨论】:

    标签: swift firebase authentication type-alias


    【解决方案1】:

    在 Swift 3+ 中,闭包中的参数标签被省略了

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

    (强烈建议使用Any 而不是AnyObject

    然后调用它

    onComplete?("Invalid Email", nil) 
    

    【讨论】:

    • 但我希望无效的电子邮件部分是错误消息,而不是静态的无效电子邮件
    • @J.Doe2 电子邮件是如何静态的?您可以在每次通话时传递任何内容。
    • 再一次,闭包中没有参数标签,请习惯。
    • 我有一个函数,我称之为 handlefirebaseerror,它应该将从 firebase 获得的错误发送回视图控制器,这样当用户输入错误时,我可以使用该消息向用户显示它注册所以我的意思是我需要使用命名变量获取消息,不是吗?
    • 你没有。字符串消息是相关的,标签不相关。
    【解决方案2】:

    Completion改为

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

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

    【讨论】:

    • 有没有人有关于 typealiases 的教程是食物,所以我可以学习?^^:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多