Trying to Reload FSCalendar with JSon data but it crashes

后端 未结 1 1124
生来不讨喜
生来不讨喜 2021-01-16 14:31

this question is linked with the my previous account\'s question.

How to make API call for this web service to fetch array of present and absent dates separately in

相关标签:
1条回答
  • 2021-01-16 15:29

    Replace the function getdateFromJSON() with

    func getdateFromJSON()
            {
                let url = NSURL(string: "http://ezschoolportalapi.azurewebsites.net/api/Student/AttendanceDetails?schoolid=1&studentid=2&month=6&year=2017")
                let request = NSMutableURLRequest(url: url! as URL)
                let task = URLSession.shared.dataTask(with: request as URLRequest) { (data, response, error)
                    in
                    guard error == nil && data != nil else
                    {
                        print("Error:",error ?? "error")
                        return
                    }
                    let httpstatus = response as? HTTPURLResponse
                    if httpstatus?.statusCode == 200
                    {
                        if data?.count != 0
                        {
                            if let responseJSON = (try? JSONSerialization.jsonObject(with: data!, options: .allowFragments)) as? [String:Any],
                                let presentdetails = responseJSON["Present"] as? [[String:Any]],
                                let Absentdetails = responseJSON["Absent"] as? [[String:Any]] {
    
                                let dateFormatter = DateFormatter()
                                dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    
    
                                self.presentdays = presentdetails.flatMap { dateFormatter.date(from: $0["Date"] as! String) }.flatMap {
                                    self.dateFormatter1.string(from:$0)
                                }
                                self.absentdays = Absentdetails.flatMap { dateFormatter.date(from: $0["Date"] as! String) }.flatMap { self.dateFormatter1.string(from:$0) }
                                DispatchQueue.main.async
                                    {
                                        self.calendar.reloadData()
                                }
                            }
                        }
                        else
                        {
                            print("No data got from URL")
                        }
                    }
                    else{
                        print("error httpstatus code is :",httpstatus?.statusCode ?? "5")
                    }
    
                }
                task.resume()
            }
    

    Please see whether the below attached image is your desired output

    0 讨论(0)
提交回复
热议问题