gpt4 book ai didi

ios - 如何快速使用 CoreData 信息对 UITableView 进行排序?

转载 作者:行者123 更新时间:2023-11-28 11:21:15 24 4
gpt4 key购买 nike

我是核心数据的新手,我正在尝试根据从 CoreData 获取的数据对我的 UITableView 进行排序。我知道如何使用数组执行此操作,但我正在努力寻找如何使用 CoreData 执行此操作。我读过类似的问题,但它要么在 Objective-c 中——我还没有学过——要么它没有解决我的具体问题。我的 CoreData 实体名为 numbers,它存储用户传入的 Float 类型的数字。我这里的代码在我的 viewDidAppear 方法中,第一行是我对 myNumbers 数组的声明,该数组在该类中是全局可用的。 ***请注意,我的实体有多个属性,我有一个属性“number”和一个属性“name”,它是一个字符串。

    var myNumbers: Array<AnyObject> = []

override func viewDidAppear(animated: Bool) {

let appDeleg: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDeleg.managedObjectContext!
let fetchreq = NSFetchRequest(entityName: "Numbers")

//Would I be adding the sort descriptor here?
let sortDescriptor = NSSortDescriptor(key: "numbersAttribute", ascending: true)
fetchreq.sortDescriptors = [sortDescriptors]

myNumbers = context.executeFetchRequest(fetchreq, error: nil)!
tableView.reloadData()

}

现在这是我的 cellForRowAtIndexPath 方法中的代码:

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

let CellID: NSString = "myCell"

var cell: CustomCell = tableView.dequeueReusableCellWithIdentifier(CellID) as CustomCell

if let indexpth = indexPath as NSIndexPath! {

var data: NSManagedObject = myNumbers[indexpth.row] as NSManagedObject
cell.theTextLabel?.text = data.valueForKeyPath("tName") as? String

cell.theDetailTextLabel?.text = data.valueForKeyPath("tNumber") as? String

}

我想根据 Numbers 实体中的“tNumber”属性对 TableView 中的数据进行排序。

最佳答案

您可以使用 NSSortDescriptor 执行此操作。在执行获取请求以填充 myNumbers 之前执行以下操作。

// Note that the key is the attribute of your Numbers entity that you are sorting
let sortDescriptor = NSSortDescriptor(key: "tNumber", ascending: true)
fetchreq.sortDescriptors = [sortDescriptors]

这应该可行,但完成将数据从 Core Data 加载到表中的最佳方法是使用 NSFetchedResultsController。如果您正在处理非常大或 transient 的数据集,则尤其如此。

关于ios - 如何快速使用 CoreData 信息对 UITableView 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com