我正在尝试对数组进行排序。数组中的内部是naamdeelnemer
,totaalpunten
等。当我打印检查时,数组返回[ ]
。有人可以帮助我吗?
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!}