【问题标题】:Swift closure using firebase blocks compile使用 firebase 块编译的 Swift 闭包
【发布时间】:2017-10-15 10:45:52
【问题描述】:

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

这是我的代码: // // 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)}
        })
    }
}

这里是这个例子的代码截图:

我已经查看了一些 SO 问题,包括 one,但没有看到适用于我情况的答案。 请看我附加的my swift version settings swift 设置。 没看到,再次附上。

感谢您的帮助

【问题讨论】:

  • 尝试从完成中删除 _success 并输入 completion: @escaping (Bool) -> Void)
  • 这似乎没有帮助。你能解释一下你推荐的理由吗?谢谢

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2019-08-17
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 2019-09-08
    • 2020-02-27
    相关资源
    最近更新 更多