Я не видел весь ваш код, но вам, вероятно, не следует обращаться к arrData
из фонового потока. Кроме того, перезагрузите табличное представление только один раз. Это должно предотвратить крэ sh.
DispatchQueue.main.async {
for arr in result.arrayValue {
self.arrData.append(filterCity (json: arr))
}
self.filter_Table.reloadData()
}
Но этот код может быть изменен в дальнейшем. Прежде всего, вы всегда добавляете в массив, но никогда не создаете новый. Если вы выполните свой веб-запрос дважды, ваши данные будут дублированы, если вы добавите их в тот же массив. Решением будет воссоздать ваш массив и назначить его, когда закончите.
let array = result.arrayValue.map { self.filterCity(json: $0) }
DispatchQueue.main.async {
self.arrData = array
self.filter_Table.reloadData()
}