Как установить индикатор выполнения в соответствии с данными веб-сервиса в ячейке tableView Swift - PullRequest
0 голосов
/ 15 января 2020

Я разрабатываю Сервисы загрузки для всех веб-сервисов для установки и чтения данных в автономном режиме. Я сохраняю все ответы JSON на SQLite для повторного использования, когда нет покрытия inte rnet или в автономном режиме. Мои веб-сервисы зависят друг от друга, как Appointment -> AppointmentDetail и т. Д.

При выборе даты func appointmentCall выполняется и внутри дополнительной функции.

У меня есть DataProvider.class с Alamofire function и вызовом всех функций обратного вызова webServices в DownloadViewController. Я делаю JSON ответ и с успехом извлекаю из SQLite.

Проблема в перспективе проектирования, при использовании таблицы XIB для отображения прогресса загрузки. Одно свидание Назначение - может быть много назначений. Мне нужно показать индикатор выполнения с именем назначения.

Я не нашел ни одной расчетной информации для отслеживания загрузки.

Мой код и изображение веб-сервисов для процесса разработки загрузки.

func appointmentCall(_ someDateTime:Date) {

        DataProvider.main.serviceGetAppointment(date: someDateTime, callback: {success, result in

            do{
                if(success){
                    let decoder = JSONDecoder()
                    let response = try decoder.decode(ResponseData.self, from: result! as! Data)
                    self.Appdata = response.appointments
                    for appID in self.Appdata! {
                        self.appointmentDetail(AppId: appID.id ?? 0)
                    }


                    return true
                }else{
                    return false
                }
            }catch let error {
                DataProvider.main.token = nil
                print(error as Any)
                return false
            }
        })



    }

    func appointmentDetail(AppId: Int){

        DataProvider.main.serviceGetAppointmentDetail(Id: AppId ?? 0, callback: {success, result in
            do{
                if(success){
                    let decoder = JSONDecoder()
                    let response = try decoder.decode(AppointmentDetail.self, from: result! as! Data)
                    self.AppDetailData = response
                    for firmParam in (self.AppDetailData?.sectionList ?? []) {
                        for firmItem in firmParam.items! {
                            if firmItem.actionParamData != nil {
                            let str = firmItem.actionParamData
                            let param = str?.components(separatedBy: ":")
                            let final = param![1].replacingOccurrences(of: "}", with: "")
                            let fmId = final.components(separatedBy: ",")
                            let frmId = fmId[0]
                                self.firmDetails(actionParamData: Int(frmId) ?? 0)

                            }

                            //pdf download
                            if firmItem.actionUrl != nil {
                                self.downloadPDFTask(pdfURL: firmItem.actionUrl ?? "")
                            }
                            // unit services download
                            if firmItem.unitId != nil {
                                self.unitData(id: firmItem.unitId ?? 0)
                                self.unitDataHistory(id: firmItem.unitId ?? 0)
                                self.unitDataImages(id: firmItem.unitId ?? 0)
                            }

                        }

                    }

                    return true
                }else{
                    return false
                }
            }catch let error {

                print(error as Any)
                return false
            }
        })
...