В приведенном ниже коде я сократил многие строки до, как я надеюсь, основных моментов.Я получаю эту ошибку:
API пользовательского интерфейса вызывается в фоновом потоке
У меня вопрос, когда я вызываю метод из DispatchQueue.main.async, делаетэтот метод выполняется в основном потоке?Я вдвойне запутался, потому что: 1) я думал, что я нахожусь в главном потоке, и, во-вторых, я не думал, что делал что-то связанное с пользовательским интерфейсом.
//Downloading data on a background thread above this line
DispatchQueue.main.async {
//Go through all the recently downloaded customers
for (index, customer) in customers.enumerated() {
//for each, add a new customer to core data
self.createNewCustomer(customer: customer)
}
}
func createNewCustomer(customer: Customer) {
let newCustomer = Customers(context: self.context)
...
//Convert time to seconds using a method in a different view controller.
let seconds = CustomerViewController().secondsFromDate(date: date)
//Save to core data and repeat
appDelegate.saveContext()
}