私はfmdb sqliteデータベースラッパーを使用しました。私は選択された行ラベルのテキストを取得すると混乱しています。私の混乱は、私がスワイプしてtableView
の行を削除すると、その行全体もそのデータベースcurrentCell.userID.text
から削除されます。そう、これを行う方法?前もって感謝します。私はあなたがlet index = tableView.indexPathForSelectedRow
を使用すべきではない、swift 2.0でsqliteデータベースから選択したテーブルビューの行データをスワイプして削除する方法は?
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()
}
}
うん!あなたは正しいです。私はちょうど 'tableView'の' indexpath'を選択するのを混乱さしました –