swift - typealias swift 的问题

标签 swift firebase authentication type-alias

嘿,我有一个使用类型别名的代码,这样当用户没有正确注册时,它能够向用户发送错误代码,尽管我的类型别名不起作用,这给我带来了我的类(class)突然出现的问题当我使用类型别名时成为错误类型,有人可以告诉我为什么会这样。

我的代码

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 3+ 中,闭包中的参数标签被省略

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

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

并调用它

onComplete?("Invalid Email", nil) 

关于swift - typealias swift 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687828/

相关文章:

swift - 将 View 添加到窗口层次结构

firebase - 如何从 Cloud Functions for Firebase 中读取和写入 Firebase 存储?

javascript - 返回对象的 Firebase 查询

node.js - 检测提供商是否使用 Passport.js 注销?

python - 错误: ImportError: cannot import name LoginForm

PHP 和 mysql 的 select 出现奇怪的错误

ios - 在 PFUser 注册后创建一个 PFObject 和 PFRelation

ios - Swift Metal Shader 命令缓冲区的执行由于在执行期间将数字添加到数组值时出错而中止

ios - swift 和火力地堡 : Retrieving location data from Firebase to show on Google map marker

swift - 单击按钮时调用 NextVC 所有方法,无需推送 View Controller