Ios swift完成处理程序无法将类型的值转换为指定类型
我正在尝试实现完成处理程序,但遇到以下错误: 无法将类型的值转换为指定的类型 这是我的密码:Ios swift完成处理程序无法将类型的值转换为指定类型,ios,string,swift,xcode7,completionhandler,Ios,String,Swift,Xcode7,Completionhandler,我正在尝试实现完成处理程序,但遇到以下错误: 无法将类型的值转换为指定的类型 这是我的密码: override func viewDidLoad() { super.viewDidLoad() let sss : String = doSomethingElse { (data) in } print(sss) } func doSomethingElse(completion:(data:String) -> Void) { let s =
override func viewDidLoad() {
super.viewDidLoad()
let sss : String = doSomethingElse { (data) in
}
print(sss)
}
func doSomethingElse(completion:(data:String) -> Void) {
let s = "blablabla"
print(s)
completion(data:s)
}
这一行是我得到错误的地方:
let sss : String = doSomethingElse { (data) in
你们知道我为什么会犯这个错误吗
我将非常感谢您的帮助。您已经声明sss为字符串,但随后尝试为其分配闭包;所以编译器会给你一个错误
我想你想做的是将闭包分配给sss,然后将闭包传递给doSomethingElse:
这将提供以下输出:
喋喋不休
数据是无稽之谈
因为您将sss声明为字符串,然后尝试为其分配闭包。
func viewDidLoad() {
super.viewDidLoad()
let sss : ((data:String) -> Void) = { data in
print ("data is \(data)")
}
doSomethingElse(sss)
}
func doSomethingElse(completion:(data:String) -> Void) {
let s = "blablabla"
print(s)
completion(data:s)
}