gpt4 book ai didi

ios - 在闭包外快速访问数据

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:31 25 4
gpt4 key购买 nike

我是 iOS 新手。我有疑问,我们如何访问闭包内的数据或变量。以下是我的代码片段。

self.fetchData() { data in
dispatch_async(dispatch_get_main_queue()) {
println("Finished request")
if let data = data { // unwrap your data (!= nil)
let myResponseStr = NSString(data: data, encoding: NSUTF8StringEncoding) as! String

}
}
}

我想把 myResponseStr 放到外面,比如 self.myString=myResponseStr

最佳答案

您应该在调用 fetchData 的函数中使用完成处理程序闭包,例如:

func fetchString(completionHandler: (String?) -> ()) {
self.fetchData() { responseData in
dispatch_async(dispatch_get_main_queue()) {
println("Finished request")
if let data = responseData { // unwrap your data (!= nil)
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding) as? String
completionHandler(responseString)
} else {
completionHandler(nil)
}
}
}
}

你可以这样调用它:

fetchString() { responseString in
// use `responseString` here, e.g. update UI and or model here

self.myString = responseString
}

// but not here, because the above runs asynchronously

关于ios - 在闭包外快速访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com