使用firebase块的Swift闭包编译

时间:2017-05-16 11:16:38

标签: swift xcode firebase firebase-realtime-database closures

我正在关注一个在线课程(从2016年12月开始),并在此屏幕截图中收到错误。

error screenshot

这是我的代码:         //     // FirebaseManager.swift

import UIKit
import Firebase
import FirebaseDatabase
import FirebaseAuth
import FirebaseAnalytics

class FirebaseManager: NSObject {
    static let databaseRef = FIRDatabase.database().reference()
    static var currentUserId:String = ""
    static var currentUser:FIRUser? = nil

    static func Login(email:String, password:String, completion: @escaping (_ success:Bool) ->
        Void) {
        FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { (user,error)
            in
        if let error = error {
            print(error.localizedDescription)
            completion(false)
        } else {
            curentUser = user
            currentUserId = (user?.uid)!
            completion(true)}
        })
    }
}

以下是此示例代码的屏幕截图:code example from class

我已经回顾了一些SO问题,包括one,但没有看到适用于我的情况的答案。 请参阅我随附的my swift version settings快速设置。 Xcode version再次附上,因为我没有看到它。 Swift Version settings

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

为什么使用传统的Swift而不是Swift 3?您显示的示例代码适用于Swift 3. @escaping属性是在Swift 3中引入的,因此可以解释构建错误。