DispatchQueue主要异步参考问题。 (参考消失了)

时间:2019-10-10 13:04:57

标签: ios swift multithreading amazon-cognito dispatch-queue

我具有获取用户会话的功能。我成功地获得了会议。但是在DispatchQueue中,我丢失了任务对象(task:AWSTask )。

在DispatchQueue之前,它不为null,但在分派DispatchQueue中,它为null。我如何失去参考。

从DispatchQueue外部获取和对象引用的最佳方法是什么。 (我不想在类中创建一个通用变量。) 顺便说一句,这并非一直都发生。

var pool:AWSCognitoIdentityUserPool

override init(){
    pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
    super.init()
}

func getUserPool() -> AWSCognitoIdentityUserPool {
    return pool
}

func getUserSession(completition: @escaping () -> Void)
{
    let user = pool.currentUser()!
    let task = user.getSession()
           task.continueWith{ (task:AWSTask<AWSCognitoIdentityUserSession>) in
            {
                DispatchQueue.main.async
                {
                    if(task.result != nil && task.error == nil)
                    {
                        /*
                         There are some calculations here

                         */

                        completition()
                    }
                }
            }
    }
}

0 个答案:

没有答案