最近我在做一个项目,需要很多API与服务器异步交互,我尝试过委托(delegate),但是写很多委托(delegate)不是很优雅。我之前一直在关注 SO 上的所有“Swift Callback”线程,但仍然卡住。
//First try
func post(url: String, data: String, callback:(result: String) ->Void){
callback(result: "Completed")
}
func request(url: String, data: String){
post(url, data, { (result) in
println(result)
})
}
request("Hello", "World")
//prints nothing
//second try following threads
func test(txt: String, resolve: (name: String) -> Void) {
resolve(name: "Dodo")
}
test("hello", {(name: String) in
println(name)
})
我错过了什么,任何帮助将不胜感激
最佳答案
你的代码看起来不错。我运行 Xcode 7 并需要进行一些修改,但代码对我有用。如果您在 Playground 中尝试此操作,请确保它确实正在执行。我经常遇到这样的情况:我期望 print 语句显示一些内容,但 Playground 由于错误而卡住并且不输出任何内容。
这是对我有用的代码(针对 Swift 2 进行了修改):
func post(url: String, data: String, callback:(result: String) ->Void){
callback(result: "Completed")
}
func request(url: String, data: String){
post(url, data: data, callback: { (result) in
print(result)
})
}
request("Hello", data: "World")
func test(txt: String, resolve: (name: String) -> Void) {
resolve(name: "Dodo")
}
test("hello", resolve: {(name: String) in
print(name)
})
关于swift - 沮丧的 Swift 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869296/