Привет всем может кто-нибудь помочь мне трудно обновить интерфейс из моего массива это мой код
fileprivate func fetchPrayer() {
guard let city = self.city else { return}
let url = "http://muslimsalat.com/\(city).json?key=6b67ed8d12d1f63fa200427bc794eff1"
DispatchQueue.global(qos: .background).async {
Alamofire.request(url, method: .get).responseJSON(completionHandler: { (dataResponse) in
if let err = dataResponse.error {
print("Failed to fetch data:", err)
return
}
guard let data = dataResponse.data else { return }
do {
let prayerData = try JSONDecoder().decode(PrayerModel.self, from: data)
prayerData.items.forEach({ (item) in
let shubuh = Prayer(prayerName: "Shubuh", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyNight"), prayerTime: item.fajr)
let dzuhur = Prayer(prayerName: "Dzuhur", prayerIcon: #imageLiteral(resourceName: "Sunny"), prayerTime: item.dhuhr)
let ashar = Prayer(prayerName: "Ashar", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyDay"), prayerTime: item.asr)
let maghrib = Prayer(prayerName: "Maghrib", prayerIcon: #imageLiteral(resourceName: "Overcast"), prayerTime: item.maghrib)
let isya = Prayer(prayerName: "Isya", prayerIcon: #imageLiteral(resourceName: "Clear"), prayerTime: item.isha)
self.prayers.append(contentsOf: [shubuh, dzuhur, ashar, maghrib, isya])
})
self.updateUI()
self.tableView.reloadData()
} catch let decodeErr {
print("Failed to decode:", decodeErr)
}
})
}
}
@objc func scheduleTime() {
timer = Timer(fireAt: Calendar.current.nextDate(after: Date(), matching: DateComponents(hour: 0..<23 ~= Date().hour ? 23 : 0), matchingPolicy: .nextTime)!, interval: 0, target: self, selector: #selector(updateUI), userInfo: nil, repeats: false)
RunLoop.main.add(timer, forMode: .common)
}
@objc func updateUI() {
locationLabel.text = city ?? "Current Location"
if 4..<9 ~= Date().hour {
coverImageView.image = #imageLiteral(resourceName: "saffu")
} else if 14..<16 ~= Date().hour {
guard let ashar = prayers.first(where: {$0.prayerName == "Ashar"}) else { return }
prayerLabel.text = ashar.prayerName
coverImageView.image = #imageLiteral(resourceName: "rezky")
} else if 17..<18 ~= Date().hour {
coverImageView.image = #imageLiteral(resourceName: "izuddin")
} else if 18..<19 ~= Date().hour {
coverImageView.image = #imageLiteral(resourceName: "nouman")
} else if 0..<3 ~= Date().hour {
coverImageView.image = #imageLiteral(resourceName: "ancient")
}
scheduleTime()
}
Я только успешно обновляю пользовательский интерфейс только молитвенник.текст , но когда я хочу получить время молитвы, я застрял там, поскольку, когда все данные json будут обновляться ежедневно, как я могу обновить пользовательский интерфейс. и я не знаю, чтобы получить конкретный объект, содержащий данные, которые я храню, как это.
let shubuh = Prayer(prayerName: "Shubuh", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyNight"), prayerTime: item.fajr)
let dzuhur = Prayer(prayerName: "Dzuhur", prayerIcon: #imageLiteral(resourceName: "Sunny"), prayerTime: item.dhuhr)
let ashar = Prayer(prayerName: "Ashar", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyDay"), prayerTime: item.asr)
let maghrib = Prayer(prayerName: "Maghrib", prayerIcon: #imageLiteral(resourceName: "Overcast"), prayerTime: item.maghrib)
let isya = Prayer(prayerName: "Isya", prayerIcon: #imageLiteral(resourceName: "Clear"), prayerTime: item.isha)
Спасибо за внимание