我正在创建一个应用程序,该应用程序可以创建缩放会议并将缩放室加入会议。 我有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实例。
请帮助我解决以上问题,我是异步编程和闭包的新手。 预先感谢。