swift异步加载数据来不及赋值给全局变量怎么办?
我从Bmob云端数据库读数据,但是因为是异步读取的,所以来不及赋值给全局变量,程序就执行完了,请问这种情况要怎么保证先从云端数据库读完了数据,再执行后面的操作呢?
func searchAllData() {
let query:BmobQuery = BmobQuery(className: "youhuiquan")
query.findObjectsInBackground { (array, error) in
var i = 0
while(i<(array?.count)!){
let obj = array?[i] as! BmobObject
self.context = (obj.object(forKey: "title") as? String)!
self.url = (obj.object(forKey: "url") as? String)!
self.image_url = (obj.object(forKey: "image_url") as? String)!
i = i + 1
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
异步要么用回调函数,要么使用 async/await。
Swift用回调的方式吧。
建议看一下 Swift 有关闭包的章节。
用闭包回调,就像oc里用block一样。。