代码之家  ›  专栏  ›  技术社区  ›  J.Doe2

typealias swift的问题

  •  1
  • J.Doe2  · 技术社区  · 7 年前

    我的代码

    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 回复  |  直到 7 年前
        1
  •  1
  •   vadian    7 年前

    在swift3+中,闭包中的参数标签被省略

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

    Any 而不是 AnyObject )

    并称之为

    onComplete?("Invalid Email", nil) 
    
        2
  •  1
  •   Kamran    7 年前

    Completion

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

    或者

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