от
Я пытаюсь удалить строку из табличного представления и хочу удалить ее с сервера, чтобы я использовал 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 голосов
от
Вот ответ, пожалуйста, следуйте ему. Прежде всего, для удаления записи со стороны приложения - необходимо удалить его из массива, а также необходимо удалить ячейку из TableView. Для удаления записи со стороны сервера, вам нужно вызвать 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
    
...