如何在 for 循环 Swift 中发送响应 POST urlsession 任务?
how to send response POST urlsession task in for loop Swift?
如何在 for 循环中发送响应 POST urlsession 任务。我想创建“帐户和联系人”。我将联系人存储在数组中。我有两个端点 postAccount 和 Postcontacts(notBulkPost);在 postAccount 之后,我循环抛出联系人列表以将其一一插入。但任务仅插入第一个联系人。我怎样才能 post 在 for 循环中联系。
func showUIAlertCreate(_ numberOfNewUsers:Int) {
let alert = UIAlertController(title: "Company Created", message: "A new company has been created and \(numberOfNewUsers) new users have been added. An email has been sent to these users to complete their account setup.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
DataService.shared.PostAccount("23242-07", "2sdfsd", UUID().uuidString, self.txtfCompanyName.text!, self.dataSource.newContacts, completion: { result in
switch result {
case .success(let account):
for index in self.dataSource.newContacts {
DataService.shared.PostContacts("23242-07", "sdfsdf", account.accountID, index , completion: { result in
switch result {
case .success(let data):
print("done!")
DispatchQueue.main.async{
self.performSegue(withIdentifier: "segueToUsersTab", sender: nil)
}
break;
case .failure(let error):
fatalError("message: error \(error)")
}
})
}
break;
case .failure(let error):
fatalError("message: error \(error)")
}
})
}))
self.present(alert, animated: true, completion: nil)
}
尝试 DispatchGroup
:
let dispatchGroup = DispatchGroup()
...
for index in self.dataSource.newContacts {
dispatchGroup.enter()
DataService.shared.PostContacts("23242-07", "sdfsdf", account.accountID, index , completion: { result in
// Do your stuff here
dispatchGroup.leave()
}
}
如何在 for 循环中发送响应 POST urlsession 任务。我想创建“帐户和联系人”。我将联系人存储在数组中。我有两个端点 postAccount 和 Postcontacts(notBulkPost);在 postAccount 之后,我循环抛出联系人列表以将其一一插入。但任务仅插入第一个联系人。我怎样才能 post 在 for 循环中联系。
func showUIAlertCreate(_ numberOfNewUsers:Int) {
let alert = UIAlertController(title: "Company Created", message: "A new company has been created and \(numberOfNewUsers) new users have been added. An email has been sent to these users to complete their account setup.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
DataService.shared.PostAccount("23242-07", "2sdfsd", UUID().uuidString, self.txtfCompanyName.text!, self.dataSource.newContacts, completion: { result in
switch result {
case .success(let account):
for index in self.dataSource.newContacts {
DataService.shared.PostContacts("23242-07", "sdfsdf", account.accountID, index , completion: { result in
switch result {
case .success(let data):
print("done!")
DispatchQueue.main.async{
self.performSegue(withIdentifier: "segueToUsersTab", sender: nil)
}
break;
case .failure(let error):
fatalError("message: error \(error)")
}
})
}
break;
case .failure(let error):
fatalError("message: error \(error)")
}
})
}))
self.present(alert, animated: true, completion: nil)
}
尝试 DispatchGroup
:
let dispatchGroup = DispatchGroup()
...
for index in self.dataSource.newContacts {
dispatchGroup.enter()
DataService.shared.PostContacts("23242-07", "sdfsdf", account.accountID, index , completion: { result in
// Do your stuff here
dispatchGroup.leave()
}
}