在多个AlamoFire请求之后调用self.Class变量

时间:2018-07-25 23:22:38

标签: ios swift closures alamofire grand-central-dispatch

我正在创建一个应用程序,该应用程序可以创建缩放会议并将缩放室加入会议。 我有2个Alamofire请求,可用于调用Zoom REST API,主要是1个请求,以创建一个缩放会议,另一个请求,以加入一个缩放会议,当用户单击“提交”按钮时应执行该请求。并且返回的结果必须使用函数调用进行存储。以下是代码摘要。

用户按下签入按钮

class MyViewController:  UIViewController {

var Kiosk = OKKiosk.shared



 @IBAction func checkInBtn(_ sender: UIButton) {
        userid = FunctiontoGetUserid()
        dispatchgroup.enter()
         let meetingCredentials = createMeeting(user : userid)

        disptachgroup.notify(queue: .main){ () in
         joinMeeting(meetingCredentials.meeting_id)

        self.Kiosk.currentuser.addReason(meetingCredentials.meeting_id)//doesnt get stored
        self.Kiosk.currentuser.addReason(meetingCredentials.start_url)//doesnt get stored
    }

Kiosk.currentuser.addReason(meeting_id)//this works
Kiosk.currentuser.addReason(start_url)//But start_url and Meeting id are empty

}

如您所见,在第二个调用joinMeeting中,我需要第一个调用createMeeting的结果。

我遇到的问题是,每当我使用self.kiosk时,addreason()内都不会存储任何内容。但是,如果我直接使用kiosk.currentuser.addReason(“ Example”),它就可以工作。 不幸的是,由于被关闭,我被迫在调度组内部使用self,否则会收到错误消息:

Reference to property 'Kiosk' in closure requires explicit 'self.' to make capture semantics explicit

我感觉到闭包内部的自我,而闭包外部的自我并不指向同一Class实例。

请帮助我解决以上问题,我是异步编程和闭包的新手。 预先感谢。

0 个答案:

没有答案