Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift中的异步代码_Swift_Xcode_Asynchronous - Fatal编程技术网

swift中的异步代码

swift中的异步代码,swift,xcode,asynchronous,Swift,Xcode,Asynchronous,我是swift新手……我不知道如何在异步调用后返回主线程。我正在通过URLSession访问数据库,并尝试了完成处理程序和委托。但他们都没有回到主线上来。因此,如果我想用数据库中的信息更新标签,我必须使用DispatchQueue.main。那么,如果我必须再次返回数据库,会发生什么呢?我会在第三个线程中结束吗 我的应用程序以登录屏幕开始,我验证您的凭据(URLSession),然后想启动下一个视图。现在所有内容都在后台线程中吗 假设你有这个:(跟随评论) private func backgr

我是swift新手……我不知道如何在异步调用后返回主线程。我正在通过URLSession访问数据库,并尝试了完成处理程序和委托。但他们都没有回到主线上来。因此,如果我想用数据库中的信息更新标签,我必须使用DispatchQueue.main。那么,如果我必须再次返回数据库,会发生什么呢?我会在第三个线程中结束吗

我的应用程序以登录屏幕开始,我验证您的凭据(URLSession),然后想启动下一个视图。现在所有内容都在后台线程中吗

假设你有这个:(跟随评论)

private func backgroundLogIn(用户名:String,密码:String,回调:@escaping(Bool,String)->Void){
//此函数获取用户的详细信息,并从后台队列返回回调。

DispatchQueue.global(qos:.background).async{//您可以使用类似调度组的东西来进行异步调用。 1.将其定义为let myGroup=DispatchGroup() 2.然后调用函数->

 'self.createQuestions {() -> () in
                myGroup.notify(queue: .main) {
                    self.newQuestion()}}'
  • createQuestion函数如下所示

    'func createQuestions(handleComplete:(()->())){ //激活并等待完成的代码 手稿`

  • }


    希望这能起作用:)

    请与我们分享您的代码
     'self.createQuestions {() -> () in
                    myGroup.notify(queue: .main) {
                        self.newQuestion()}}'