Вы можете использовать группы отправки для запуска асинхронного обратного вызова, когда все ваши запросы завершатся.
Вот пример в Swift 4.1 (также работает в Swift 3), используя группы отправки выполняйте обратный вызов асинхронно, когда все сетевые запросы завершены.
override func viewDidLoad() {
super.viewDidLoad()
let myGroup = DispatchGroup()
for i in 0 ..< 5 {
myGroup.enter()
Alamofire.request("https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { response in
print("Finished request \(i)")
myGroup.leave()
}
}
myGroup.notify(queue: .main) {
print("Finished all requests.")
}
}
Выход
Finished request 1
Finished request 0
Finished request 2
Finished request 3
Finished request 4
Finished all requests.
Для тех, кто использует более ранний Swift 2.3, вот пример, используя его синтаксис :
override func viewDidLoad() {
super.viewDidLoad()
let myGroup = dispatch_group_create()
for i in 0 ..< 5 {
dispatch_group_enter(myGroup)
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]).responseJSON { response in
print("Finished request \(i)")
dispatch_group_leave(self.myGroup)
}
}
dispatch_group_notify(myGroup, dispatch_get_main_queue(), {
print("Finished all requests.")
})
}
Это означает, что эти файлы не являются частью настроек проекта. Как вы создали этот проект?
Я не уверен, какую версию IntelliJ вы используете - я использую 9.0.1. Я бы рекомендовал открыть структуру проекта (значок справа от "гаечного ключа" или Ctrl+Alt+Shift+S), нажать на "Modules" и обозначить каталог, в котором находятся файлы .java, как исходный каталог (он изменится на синий цвет).
Для тех, у кого есть эта проблема с Android Studio. Попробуйте следующее:
1) Перейдите к настройкам своего проекта
2) Перейдите в Модули -> и на вкладке опций модуля выберите «Источники» - должна быть опция «Добавить контент» Root "и под ним, синие, зеленые и красные вкладки папок для исходных папок, тестовых исходных папок и исключенных папок соответственно.
3) Справа щелкните правой кнопкой мыши папку исходного кода Java, которую вы хотите добавить, и выберите, чтобы добавить ее в Источник или Тесты (в зависимости от того, какие файлы вы добавляете).
4) Добавленные файлы теперь должны отображаться с синим кружком с буквой С в центре на левой панели окна проекта.
Для проектов Maven:
В моем случае мне пришлось импортировать проект через Maven. Некоторые модули отсутствовали (они не были указаны в корневом разделе), поэтому добавление их в виде проектов maven решило проблему.
щелкните значок «плюс» в правом меню Maven, а затем добавьте проект. Это автоматически импортировало все источники / структуру.