我具有获取用户会话的功能。我成功地获得了会议。但是在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()
}
}
}
}
}