首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用其他委托方法后执行.resume

调用其他委托方法后执行.resume
EN

Stack Overflow用户
提问于 2017-08-02 13:06:43
回答 1查看 49关注 0票数 1

我在viewDidLoad()中添加了webservice调用,但是它总是在调用所有其他函数之后恢复执行。下面是我的密码。

代码语言:javascript
复制
override func viewDidLoad() {        
    super.viewDidLoad()
    self.addSlideMenuButton()        
    getData()        
    calendarManager = JTCalendarManager.init()
    calendarManager.delegate = self 
    createMinAndMaxDate()        
    calendarManager.menuView = calendarMenuView
    calendarManager.contentView = calendarContentView
}

func getData(){        
    var request = URLRequest(url: URL(string: "http:xxx")!)
    request.httpMethod = "GET"
    let task = URLSession.shared.dataTask(with: request) { data, 
    response, error in
        guard let data = data, error == nil else {
            print("error=\(String(describing: error))")
            return
        }            
        else {                
            do{                    
                //empty eventDetail dictionary
                self.Detail = [String: String]() as NSDictionary

                let json = try JSONSerialization.jsonObject(with: 
                data, options:.allowFragments) as! [String:AnyObject]
                if let dictionary = json as? [String: Any] {
                    if let nestedDictionary = 
                    dictionary["xxx_webservices"] as? [String: Any] 
                    {
                        // access nested dictionary values by key
                        let dateArray = nestedDictionary["3"] as! 
                        [String:Any]
                        for details in (dateArray["xxx"]  as! 
                        [[String:Any]] ){
                            // access all key / value pairs in 
                         dictionary
                            print(details["xxx"]!)

                                DispatchQueue.main.async (execute: { 
                                () -> Void in
                                    //event details contains details 
                                    of an event
                                    self.eventDetail = 
                                     nestedDictionary["3"] as! 
                                     NSDictionary
                                })
                            }
                        }
                    }
                }                    
            }
            catch {
                print("Error with Json: \(error)")
            }                
        }            
    }
    task.resume()

task.resume()总是在调用日历方法的委托后执行。如何在调用其他委托之前继续执行任务,以便在日历视图中显示数据?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-03 14:28:35

将这些代码添加到web服务中就可以了。

代码语言:javascript
复制
DispatchQueue.main.async {
    self.calendarManager.reload()
} 

这将使用web服务数据调用日历委托。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45461729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档