【问题标题】:how to send response POST urlsession task in for loop Swift?如何在 for loop Swift 中发送响应 POST urlsession 任务?
【发布时间】:2020-09-03 17:00:12
【问题描述】:

如何在 for 循环中发送响应 POST urlsession 任务。我有一个创建“帐户和联系人”的视图。我将联系人存储在数组中。我有两个端点 postAccount 和 Postcontacts(notBulkPost);在 postAccount 之后,我循环抛出列表联系人以将其一一插入。但该任务仅插入第一个联系人。如何在 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)
}

【问题讨论】:

  • 您是否尝试将 post 函数添加到 dispatch async 中?
  • 没有。我不能给我看吗?

标签: swift loops post webapi urlsession


【解决方案1】:

试试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()
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多