2016-04-25 7 views
0

基本的にセルを「オフライン」で削除するには、右から左にスワイプするたびにユーザーがテーブルビューセルを削除できるように、このメソッドを使用します。indexPathでCKRecordを削除するには? (UITableView)

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
     if(editingStyle == UITableViewCellEditingStyle.Delete){ 
     self.polls.removeAtIndex(indexPath.row) 
} 

しかし、それは明らかに私が前に作成したセルの内容のCKRecordには影響を与えません。だから、私はどのようにフェッチし、ユーザーがスワイプして削除する正確な行でCKRecordデータを削除できますか?

+1

機種によって異なります。 '世論調査'とは何ですか? – vadian

+0

投票はCKRecordです – user3545063

答えて

1

polls[CKRecord]と宣言されているデータソース配列であると仮定すると、3つのことを行う必要があります。

  1. データソース配列から指定されたインデックスのレコードを取得し、適切なCKDatabaseから削除します。
  2. データソース配列からレコードを削除します(すでに行っています)。
  3. テーブルビューの行を削除してdeleteRowsAtIndexPathsを呼び出し、[indexPath]を削除します。

    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
        if editingStyle == .Delete { 
         let record = polls[indexPath.row] 
         publicDatabase.deleteRecordWithID(record.recordID, completionHandler: ({returnRecord, error in 
          // do error handling 
         }) 
         polls.removeAtIndex(indexPath.row) 
         tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) 
        } 
    } 
    

    編集:

    適切なエラーのためにあなたにステップ2と3のコードを配置する必要があるかもしれませんハンドリング例えば

publicDatabaseは、実際のCKDatabaseインスタンスです)完了ブロック。

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if editingStyle == .Delete { 
     let record = polls[indexPath.row] 
     publicDatabase.deleteRecordWithID(record.recordID, completionHandler: ({returnRecord, error in 
      if error != nil { 
      // do error handling 
      } else { 
      self.polls.removeAtIndex(indexPath.row) 
      dispatch_async(dispatch_get_main_queue()) { 
       self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) 
      } 
      } 
     }) 
    } 
} 
+0

あなたの答えをありがとう。はい、pollsはデータソース配列です(私はそれを呼び出す方法がわかりませんでした) 問題は、指定されたインデックスのポーリングからレコードを取得する方法がわかりません。あなたはそれについて詳述できますか? – user3545063

+0

私は答えを編集しました。 – vadian

+0

お時間をいただきありがとうございます!私は "真剣な" iOS開発から始めました。コード例を見ても、私がこのコンセプトを理解するのに最適です。 – user3545063

関連する問題