swift异步加载数据来不及赋值给全局变量怎么办?

发布于 2022-09-04 09:09:20 字数 812 浏览 18 评论 0

我从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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泪是无色的血 2022-09-11 09:09:20

异步要么用回调函数,要么使用 async/await。

Swift用回调的方式吧。

箜明 2022-09-11 09:09:20

建议看一下 Swift 有关闭包的章节。

孤独患者 2022-09-11 09:09:20

用闭包回调,就像oc里用block一样。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文