Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中的void函数中遇到意外的非void返回值_Ios_Swift_Switch Statement - Fatal编程技术网

Ios 在swift中的void函数中遇到意外的非void返回值

Ios 在swift中的void函数中遇到意外的非void返回值,ios,swift,switch-statement,Ios,Swift,Switch Statement,我得到了swift中void函数中意外的非void返回值的错误。以及如何调用这个函数。我需要返回字符串,并希望将其作为参数传递。请看我下面的代码 static func truetime() -> String? { let client = TrueTimeClient.sharedInstance //client.start() client.fetchIfNeeded { result in switch r

我得到了swift中void函数中意外的非void返回值的错误。以及如何调用这个函数。我需要返回字符串,并希望将其作为参数传递。请看我下面的代码

static func truetime() -> String? {

        let client = TrueTimeClient.sharedInstance
        //client.start()
        client.fetchIfNeeded { result in
            switch result {
            case let .success(referenceTime):
                let now = referenceTime.now()
                //print("Time is " + "\(now)")
                let dateFormatter : DateFormatter = DateFormatter()
                dateFormatter.dateFormat = "\(KeyValues.datetimeformat)"
                dateFormatter.timeZone = TimeZone(abbreviation: "GMT+05:00")
                let dateString = dateFormatter.string(from: now)

                print("Time is " + "\(dateString)")
                return dateString
            case let .failure(error):
                print("Error! \(error)")
            }
        }

    }
这个

如果内部完成无效返回出现问题,则需要对异步任务使用完成

//

像这样使用它

className.truetime { (dateString) in

   if let date = dateString {


   }
}

请使用我的代码SEE edit向我发送代码………我想在此语句中使用返回值作为参数让参数=[breakin_time:,user_id:data,company_id:data1,in_break:1]作为[String:Any]client.FetchIfRequired{result in…}类似于具有void返回类型的内联函数的闭包。return dateString试图返回一个不允许的字符串。
static func truetime(completion:@escaping(_ dateString:String?) -> Void ){

    let client = TrueTimeClient.sharedInstance
    //client.start()
    client.fetchIfNeeded { result in
        switch result {
        case let .success(referenceTime):
            let now = referenceTime.now()
            //print("Time is " + "\(now)")
            let dateFormatter : DateFormatter = DateFormatter()
            dateFormatter.dateFormat = "\(KeyValues.datetimeformat)"
            dateFormatter.timeZone = TimeZone(abbreviation: "GMT+05:00")
            let dateString = dateFormatter.string(from: now)

            print("Time is " + "\(dateString)")
            completion(dateString)
        case let .failure(error):
            print("Error! \(error)")
            completion(nil)
        }
    }

}
className.truetime { (dateString) in

   if let date = dateString {


   }
}