请看下面的代码:
backgroundthread.async { return self.mycallback() //return string, int etc }
我想从异步块返回一个值。我不需要任何完成处理程序或任何其他解决方法。
func getAppConfigFromDB(_ key: String) -> String { let value = String() backgroundthread.async { let inst = AppConfigDB.init(_APP_CONFIG_DB_PATH) value = inst.getConfigurationInfo(key) // I want to return from here. } return value } getAppConfigFromDB("path")
就像@rmaddy所说的那样,除了使用完成处理程序,您别无选择。
func getAppConfigFromDB(_ key: String, completion: @escaping ((String) -> Any)) { let value = String() backgroundthread.async { let inst = AppConfigDB.init(_APP_CONFIG_DB_PATH) value = inst.getConfigurationInfo(key) // I want to return from here. completion(value) } }
您可以这样调用方法。
getAppConfigFromDB("") { (value) -> Any in // Use value to do something }