Я разрабатываю Сервисы загрузки для всех веб-сервисов для установки и чтения данных в автономном режиме. Я сохраняю все ответы 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
}
})