Swift - может ли мой код переключать потоки при вызове функции - PullRequest
0 голосов
/ 20 апреля 2019

В приведенном ниже коде я сократил многие строки до, как я надеюсь, основных моментов.Я получаю эту ошибку:

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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...