Я продолжал пытаться, но я просто не понимаю. Я новичок в программировании, поэтому почти каждый новый шаг - это эксперимент. В то время как у меня нет проблем с отправкой нормальных закрытий без аргументов/возвратов, я пока не понял, как обращаться с функциями, которые принимают (несколько) аргументы и возвращаются в конце.
Чтобы получить логику правильной "работы вокруг", было бы здорово, если бы кто-нибудь мог опубликовать практический пример, чтобы я мог видеть, все ли у меня все в порядке. Я был бы очень благодарен за любую помощь... Если какой-нибудь другой практический пример лучше иллюстрирует эту тему, пожалуйста, продолжайте свой собственный!
Предположим, мы хотели бы асинхронно отправить следующую функцию в фоновую очередь с низким приоритетом (или я делаю ошибку, пытаясь реализовать диспетчеризацию при определении функции вместо ожидания до ее вызова из другого места?!):
func mutateInt(someInt: Int) -> Int {
"someHeavyCalculations"
return result
}
или функция с несколькими аргументами, которая дополнительно вызывает первую функцию в некоторой точке (все в фоновом порядке):
func someBadExample(someString: String, anotherInt: Int) -> Int {
"someHeavyStuff"
println(testString)
mutateInt(testInt)
return result
}
или UI-функцию, которая должна быть обеспечена для запуска только в главной очереди (просто фиктивный пример):
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionInfo = self.fetchedResultsController.sections?[section] as NSFetchedResultsSectionInfo
return sectionInfo.numberOfObjects
}