Как я могу восстановить мою старую задачу с новой в быстром? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть вопрос о задачах. Мне нужно восстановить мой запрос, я изменяю ссылку и извлекаю новые данные для этой ссылки и показываю их в виде таблицы. Пользователь может изменить ссылку в соответствии с представлением выбора, у меня есть переменная для нее, и я заменил ссылку, и это тоже работает правильно, но во втором запросе можно создать поток, я предполагаю, что это очень плохой вопрос, но я новичок в swift. Как я могу сделать второй или более запрос в одной функции.

Вот мой код функции:

func fetchArticles(){

      let urlRequest = URLRequest(url: URL(string: "my_api_link_is_here")!)

      let task = URLSession.shared.dataTask(with: urlRequest) { (Data,URLResponse,Error) in

          if Error != nil {
              print(Error!)
          }

          self.articles = [Article]()

          do{
              let json = try JSONSerialization.jsonObject(with: Data!, options: .mutableContainers) as! [String: AnyObject]

              if let articlesFromJson = json["articles"] as? [[String:AnyObject]] {


                  for articleFromJson in articlesFromJson {
                      let article = Article()

                    let source = articleFromJson["source"] as![String: AnyObject]

                    let name = source["name"]

                    if let title = articleFromJson["title"] as? String, let author = name as? String , let desc = articleFromJson["description"] as? String, let url = articleFromJson["url"] as? String, let imageToUrl = articleFromJson["urlToImage"] as? String  {


                        article.author = author as String


                        if articleFromJson.index(forKey: "description") != nil {
                            article.desc = desc as String
                        }else{
                            article.desc = "empty"
                        }

                        article.headline = title as String
                        article.imageUrl = imageToUrl as String
                        article.url = url as String


                    }

                    self.articles?.append(article)

                  }


              }

              DispatchQueue.main.async {
                  self.tableView.reloadData()
              }


          }catch let Error {
              print(Error)
          }

      }
      task.resume()


  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...