hey I have trouble to access my global array, because it's empty. I know this question I already ask in this link How to access global array in Swift 4?
but they not show it in a code, so I don't understand how to implement it. can anyone show me how to do it? this is my code
var prayers = [Prayer]() //This is my global array
func fetchPrayer() {
guard let city = self.city else { return}
self.prayers = []
APIServices.shared.fetchPrayer(name: city) { (results) in
results.datetime.forEach({ (time) in
let shubuh = Prayer(prayerName: "Shubuh", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyNight"), prayerTime: time.times.Fajr)
let dzuhur = Prayer(prayerName: "Dzuhur", prayerIcon: #imageLiteral(resourceName: "Sunny"), prayerTime: time.times.Dhuhr)
let ashar = Prayer(prayerName: "Ashar", prayerIcon: #imageLiteral(resourceName: "PartlyCloudyDay"), prayerTime: time.times.Asr)
let maghrib = Prayer(prayerName: "Maghrib", prayerIcon: #imageLiteral(resourceName: "Overcast"), prayerTime: time.times.Maghrib)
let isya = Prayer(prayerName: "Isya", prayerIcon: #imageLiteral(resourceName: "Clear"), prayerTime: time.times.Isha)
self.prayers.append(contentsOf: [shubuh, dzuhur, ashar, maghrib, isya])
})
DispatchQueue.main.async {
self.updateUI()
self.tableView.reloadData()
}
}
}
This is my table view code, I put the func setupTableView in viewDidLoad
extension PrayerController: UITableViewDelegate, UITableViewDataSource {
func setupTableView() {
tableView.delegate = self
tableView.dataSource = self
tableView.register(PrayerTimeViewCell.self, forCellReuseIdentifier: self.cellId)
tableView.separatorColor = .clear
tableView.backgroundColor = .clear
tableView.rowHeight = 53
}
//MARK:- TableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return prayers.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! PrayerTimeViewCell
let prayer = prayers[indexPath.row]
cell.prayer = prayer
return cell
}
}
This is where the code is have an error index out of range
func updateUI() {
let prayer0 = prayers[0].prayerTime
let prayer1 = prayers[1].prayerTime
let prayer2 = prayers[2].prayerTime
let prayer3 = prayers[3].prayerTime
let prayer4 = prayers[4].prayerTime
}