gpt4 book ai didi

ios - 如何在 swift 2.0 中从 sqlite 数据库中滑动和删除选定的 TableView 行数据?

转载 作者:行者123 更新时间:2023-11-28 12:43:50 25 4
gpt4 key购买 nike

我使用了 fmdb sqlite 数据库包装器。我对获取选定的行标签文本感到困惑。我的困惑是,当我轻扫并删除 tableView 行时,整行也将从具有 currentCell.userID.text 的数据库中删除。那么,该怎么做呢?提前致谢。我试过的代码,

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

let index = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRowAtIndexPath(index!) as! DashBoardCell
print(currentCell.userID.text) //I am getting NiL

let deletedID = currentCell.userID.text

if editingStyle == .Delete
{

let tableData = indexPath.row

items.removeAtIndex(tableData)
number.removeAtIndex(tableData)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

let filemgr = NSFileManager.defaultManager()
let dirPaths = filemgr.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)

databasePath = dirPaths[0].URLByAppendingPathComponent("visitors.db").path!

let contactDB = FMDatabase(path: self.databasePath as String)
if contactDB.open()
{
let deleteSQL = "SELECT * FROM VISITORLIST WHERE userid = '\(deletedID)'"
let result = contactDB.executeUpdate(deleteSQL, withArgumentsInArray: nil)
if !result
{
print("Failed To Delete Visitor Lists")
print("Error3: ",contactDB.lastErrorMessage())
}
else
{
print("Successfully Deleted")

}

}
else
{
print("Error4: ",contactDB.lastErrorMessage())
}

tableView.reloadData()
}
}

最佳答案

你不应该使用 let index = tableView.indexPathForSelectedRow,你应该只使用 indexPath。您当前的代码从表数据中删除了正确的对象,但从 SQLite 存储中删除了错误的对象(如果没有选择行,则什么也没有)。

关于ios - 如何在 swift 2.0 中从 sqlite 数据库中滑动和删除选定的 TableView 行数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com