2017-06-27 9 views
0

現在、テーブルビューを正しい順序で並べ替えることができません。今のところ、彼らは何があっても秩序を変えない。私はこれを修正するために何を追加するか分からない。最新の時刻でテーブルビューを注文する

import UIKit 

class ListNotesTableViewController: UITableViewController { 
    var notes = [Note](){ 
     didSet{ 
      tableView.reloadData(); 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     notes = CoreDataHelper.retrieveNotes() 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return notes.count; 
    } 

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath : IndexPath) ->ListNotesTableViewCell{ 
     let cell = tableView.dequeueReusableCell(withIdentifier: "listNotesTableViewCell", for: indexPath) as! ListNotesTableViewCell 

     let row = indexPath.row 
     let note = notes[row] 
     cell.noteTitleLabel.text = note.title 
     cell.notePreview.text = note.content; 
     cell.noteModificationTimeLabel.text = note.modificationTime?.convertToString() 
     return cell 
    } 

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if let identifier = segue.identifier { 
      if identifier == "displayNote" { 
       print("Table view cell tapped") 

       let indexPath = tableView.indexPathForSelectedRow! 
       let note = notes[indexPath.row] 
       let displayNoteViewController = segue.destination as! DisplayNoteViewController 
       displayNoteViewController.note = note 

      } else if identifier == "addNote" { 
       print("+ button tapped") 
      } 
     } 
    } 

    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { 
     if editingStyle == .delete { 

      CoreDataHelper.delete(note: notes[indexPath.row]) 

      notes = CoreDataHelper.retrieveNotes() 
     } 
    } 

    @IBAction func unwindToListNotesViewController(_ segue: UIStoryboardSegue){ 
     self.notes = CoreDataHelper.retrieveNotes() 
    } 
} 
+1

なぜCoreDataフェッチ中にソートしないのですか? – Larme

答えて

1

あなたnotesが時間によってソートされていないように思えます。 self.notes = CoreDataHelper.retrieveNotes()を得るたびに配列をソートする必要があります。 date変数があなたのNoteクラスにあなたの時間と構造のためにあなたが持っている変数何名に応じて異なる場合がありますことを

self.notes.sorted(by: { $0.date < $1.date }) 

:あなたはこのようにそれを行うことができます。

関連する問題