且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Swift 4函数为多个返回值返回0

更新时间:2022-05-06 22:05:31

很显然,它是异步执行的问题.将 *函数与Closure * 结合使用,而不要使用具有返回值的函数.

Clearly its issue of asynchronous execution. Use * function with Closure* Instead of function with returning value.

请参考以下代码

var docRefF : DocumentReference!
func getTime(_ then:(_ first:Int, _ second:Int)->()){
    var FHour = Int()
    var FMinute = Int()


    docRefF = Firestore.firestore().document("sampleTime/worktime")
    dataListener =  docRefF.addSnapshotListener { (docSnapshot, error) in
     guard let docSnapshot = docSnapshot, docSnapshot.exists else { return }
   let data = docSnapshot.data()
    let Hour:Int = data["Hour"]! as! Int
    let Minute: Int = data["Minute"]! as! Int

        FHour = Hour
        FMinute = Minute

    //TODO:- Use other firebase related task same as your code, so that uncomment other lines same as your origional

    then(FHour, FMinute) // This is closure call back line

     }
   }

   //Calling your function
    getTime { (first, second) in

    print(first,second)

    }