从Coredata身份分类数组



我正在尝试对数组进行排序。数组中的内部是naamdeelnemertotaalpunten等。当我打印检查时,数组返回[ ]。有人可以帮助我吗?

import UIKit
import CoreData

var userArray:[Punten] = []
override func viewDidLoad() {
    super.viewDidLoad()
    userArray.sort { $0.naamdeelnemer! < $1.naamdeelnemer!}
    print(userArray)
    tableView.delegate = self
    tableView.dataSource = self
    self.fetchData()
    self.tableView.reloadData()
}
override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return userArray.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let name = userArray[indexPath.row]
    cell.textLabel!.text = name.naamdeelnemer! + "    " + String(name.totaalpunten)

    return cell
}
func fetchData() {
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    do {
        userArray = try context.fetch(Punten.fetchRequest())
    }
    catch {
        print(error)
    }
}

您可以在请求中使用" nssortDescriptor",同时从核心数据中获取数据。请在下面找到示例代码:

let request = NSFetchRequest<NSFetchRequestResult>(entityName: "TableName")
request.sortDescriptors = [NSSortDescriptor(key: "naamdeelnemer", ascending: true)]

在这里," tableName"是要获取记录的表名称。" naamdeelnemer"是可以进行分类的领域。上升:参数可以是" true"或" false"

您有 first fetch data 然后对它们进行分类

self.fetchData()
userArray.sort { $0.naamdeelnemer! < $1.naamdeelnemer!}

但是,这不是凯达塔。获取通过排序描述符的数据。这更有效

func fetchData() {
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let request : NSFetchRequest<Punten> = Punten.fetchRequest()
    request.sortDescriptors = [NSSortDescriptor(key: "naamdeelnemer", ascending: true)]
    do {
        userArray = try context.fetch(request)
    }
    catch {
        print(error)
    }
}

userArray.sort { $0.naamdeelnemer! < $1.naamdeelnemer!}

最新更新