Удаление строки из табличного представления и сервера также в swift - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь удалить строку из табличного представления и хочу удалить ее с сервера, на котором я использую localhost в качестве сервера

мой URL-адрес удаления LocalHost в месте идентификатора я должен отправить «идентификатор», и я получаю, что при выборе таблицы выбирается, и я передаю этот URL, и я не могу удалить из сервер во время этого процесса

, пожалуйста, помогите мне, есть ли какие-либо изменения в моем коде

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

    if editingStyle == .delete {

       // getting id //
        id1 = "\(arrdata[indexPath.row].id)"
        print(id1)

        self.arrdata.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .automatic)
        let url = URL(string: "http://localhost:8080/hub/business/fun/=%@",id1 as CVarArg)

        URLSession.shared.dataTask(with: url!) { (data, response, error) in
            do{if error == nil{
                self.arrdata = try JSONDecoder().decode([jsonstruct3].self, from: data!)

                for mainarr in self.arrdata{
                    //                    print(mainarr.name,":",mainarr.capital,":",mainarr.alpha3Code)
                    //                    print(data)

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

            }
            catch
            {
                print("Error in get json data")
                print(error)
            }

            }.resume()

        tableView.reloadData()
        tableView.endUpdates()
    }
}

1 Ответ

0 голосов
/ 04 июля 2019

Вот ответ, пожалуйста, следуйте ему.

  1. Прежде всего, для удаления записи со стороны приложения - необходимо удалить его из массива, а также необходимо удалить ячейку из TableView.

  2. Для удаления записи со стороны сервера, вам нужно вызвать API для Сообщите серверу о том, какой сервер данных будет удален.

Я проверил ваш код и обнаружил, что удаление записи со стороны приложения кажется правильным, но при вызове API - я думаю, вам нужно передать дополнительную информацию на сервер. Может быть, вы хотите передать заголовок, метод HTTP, параметры и т. Д. Вы можете делать все это с помощью URLRequest. Вы только что передали URL в своем коде, поэтому вместо прямой передачи URL попробуйте передать URLRequest.

А после ответа, пожалуйста, попробуйте ниже код, чтобы проверить точное что вы получаете со стороны сервера.

if let url = URL(string: "Your API URL here") {
            var urlRequest = URLRequest(url: url)
            urlRequest.httpMethod = "POST" //Can be any as "GET", "PUT"
            urlRequest.addValue("Bearer \("token")", forHTTPHeaderField: "Authorization") //Based on your back-end requirements.
            let params = ["id": "5"] //Based on your back-end requirements.
            urlRequest.httpBody = try? JSONSerialization.data(withJSONObject: params, options: [])

            URLSession.shared.dataTask(with: urlRequest) { (data, response, error) in
                if error == nil, let jsonData = data {
                    do {
                        if let jsonResponse = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any] {
                            print(jsonResponse)
                        }
                    } catch {
                        print("\(error.localizedDescription)")
                    }
                }
            }.resume()
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...