Удаление данных в sqlite из таблицы - PullRequest
0 голосов
/ 13 февраля 2020

Я бы хотел добавить кнопку в табличное представление для удаления данных каждой строки в sqlite. Я добавил метод для удаления в свой пользовательский класс ячеек, как вы можете видеть, имя метода - queryForDeletion. В запросе ID является первичным ключом. Я хотел бы знать, как я могу удалить указанную строку c при нажатии на указанную строку c в представлении таблицы. Я думаю о том, что я объявляю пользовательскую ячейку, объявляю в ней метод и вызываю ее в виде таблицы (_: didSelectRowAt). Если мой подход неверен, какие другие способы были бы лучше?

class myCustomCell:UITableViewCell {

  @IBOutlet weak var myLableCell1: UILabel!
  @IBOutlet weak var myLableCell2: UILabel!
  let filemgr = FileManager.default
               let dirPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

     @IBAction func myDelete(_ sender: Any) {
     let docsDir = dirPaths[0] as String
     let databasesPath = docsDir.appending("/info.db")

        let myDB = FMDatabase(path:databasesPath)
        if myDB.open(){
        let queryForDeletion = "DELETE FROM infoss WHERE ID="        
                      }

                           }
                                }

 class tableviewtest: UIViewController, UITableViewDelegate, UITableViewDataSource {
             func tableView(_ tableview: UITableView, didSelectRowAt indexPath: IndexPath) {

            myCustomCell.myDelete(willbeshown[indexPath.row])

        }
    }

1 Ответ

0 голосов
/ 13 февраля 2020

Перво-наперво.

UIViewController реализует UITableViewDelegate UITableViewCell - пользовательская ячейка вы уже реализовали.

Дело в том, что вы не определили, какой идентификатор вы хотите удалить, это можно сделать внутри следующей функции.

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

 let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath)

Внутри ячейки, получить id строки, вам нужно использовать что-то, чтобы идентифицировать id, часто я помещаю тег внутри какого-то поля, например кнопки или метки.

Установите идентификатор тега строки базы данных, которую вы хотите удалить. например, быть основным.

Если у вас нет цифры c PK, вы можете использовать, если предпочитаете, переменную sender.accessibilityIdentifier, например:

 let id = sender.accessibilityIdentifier

Когда вы получаете ячейка, когда пользователь нажимает, вы можете легко ссылаться на поле с вашим ПК.

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