2015-09-08 2 views
1

im создание приложения, которое в настоящее время сохраняет объект синтаксического анализа в локальном хранилище данных и на parse.com. Затем я запускаю запрос, сохраняя каждый объект в массиве, чтобы я мог отображать его в виде таблицы. все до этого момента хорошо работает благодаря моим прошлым поставленным вопросам here и here.parse.com swift - удалить и удалить объект в ячейке tableView

так что информация отображается правильно, как я надеялся. но теперь я хотел бы также удалить записи. Я бы хотел пролистнуть таблицу, и когда удалено удаление, объект не будет удален из локального хранилища данных, и тот же элемент будет удален из облака.

вот мой текущий код для этого:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 



    // var lighthouse = self.lighthouses[indexPath.row] 
    var data = self.arrayToPopulateCells[indexPath.row] 

    let cell = tableView.dequeueReusableCellWithIdentifier("locationCell") as! lighthouseCell 

    let row = indexPath.row 
    cell.cellName.text = data.name 
    cell.cellPlace.text = data.locality 

    cell.cellDate.text = "\(data.date)" 

    return cell 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.selectedLighthouse = self.arrayToPopulateCells[indexPath.row] 
    self.performSegueWithIdentifier("lighthouseDetailViewSegue", sender: self) 
} 



func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool { 
    return true 
} 

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if (editingStyle == UITableViewCellEditingStyle.Delete) { 

     self.arrayToPopulateCells.removeAtIndex(indexPath.row) 
     tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) 
    } 
} 

где «arrayToPopulateCells», где объекты разбора откладываются во время моего запроса.

Очевидно, им удастся удалить ячейку по адресу indexpath.row, но как взять информацию в этой ячейке и найти подходящий объект синтаксического анализа для удаления и удаления?

+0

Можете ли вы сказать мне, что вы пишете в CellForRowAtINDex TableView делегатом – Kavita

ответ

0

Используя этот делегат и может получить ссылку на lighthouseCell и использования, что и может получить переменную и

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

if (editingStyle == UITableViewCellEditingStyle.Delete) { 

    var selectedCell = tableView.cellForRowAtIndexPath(indexPath) as lighthouseCell 
     gameScore.removeObjectForKey("playerName") 
     self.arrayToPopulateCells.removeAtIndex(indexPath.row) 
     tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) 
} 
} 

с помощью selectedCell, а затем

selectedCell.data.removeObjectForKey("keyName") 

и для удаления данных синтаксического анализа мы имеем Delete Object for particular key

0

Предполагая, что объекты в вашем массиве являются действительными PFObject экземпляров, тогда просто позвоните deleteInBackground, прежде чем вы r вывести их из массива данных.

Итак:

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if (editingStyle == UITableViewCellEditingStyle.Delete) { 
     self.arrayToPopulateCells[indexPath.row].deleteInBackground() // Delete from cloud 
     self.arrayToPopulateCells.removeAtIndex(indexPath.row) 
     tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) 
    } 
} 
Смежные вопросы