I would thus investigate the sequence of events (by just adding some prints to start with.
Possibly, when loadData() is called, data are not yet loaded…
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
print(#function, "going to loadData") // ====
loadData()
}
func loadData() {
r_feedback(rtaskId: idTask.text ?? "")
print(#function, "going to buttonChange") // ====
buttonChange()
}
func r_feedback(rtaskId: String) {
var singleFeed = myFeedback()
self.arrayOfFeedback.removeAll()
queryFeedback(taskId: rtaskId).findObjectsInBackground { (objects, error) in
if let objects = objects {
if (objects.count 0) {
print(#function, "queryFeedback") // ====
for eachFeed in objects {
singleFeed.feedDate = eachFeed.createdAt!
singleFeed.userNameFrom = eachFeed["UserNameFrom"] as? String
singleFeed.feedMessage = eachFeed["TaskFeedback"] as? String
singleFeed.atype = eachFeed["AType"] as? Int
self.arrayOfFeedback.append(singleFeed)
}
} else {
singleFeed.feedDate = nil
singleFeed.userNameFrom = ""
singleFeed.feedMessage = ""
singleFeed.atype = nil
}
DispatchQueue.main.async {
print(#function, "going to reloadData") // ====
self.fTableView.reloadData()
}
}
}
}
func buttonChange() {
let stat = taskStatus?.text
let rqType = Int(reqTypeIndex.text ?? "") ?? 0
switch(rqType) {
case 0:
if (stat == status[1]) || (stat == status[3]) {
statusChange(imageLabel: task_image[2])
} else {
statusChange(imageLabel: "")
}
case 1:
if (stat == status[2]) {
statusChange(imageLabel: task_image[3])
} else {
statusChange(imageLabel: "")
}
default:
statusChange(imageLabel: "")
}
print(#function, "button has changed") // ====
}
Please show the complete log.
Topic:
App & System Services
SubTopic:
Core OS
Tags: