【发布时间】:2015-01-12 15:57:39
【问题描述】:
我是核心数据的新手,我正在尝试从从 CoreData 获取的数据中对我的 UITableView 进行排序。我知道如何使用数组来做到这一点,但我正在努力寻找如何使用 CoreData 来做到这一点。我读过类似的问题,但它要么是在 Objective-c 中——我还没有学过——要么它没有解决我的具体问题。我的 CoreData 实体被命名为 numbers,它存储用户传入的 Float 类型的数字。我的代码在我的 viewDidAppear 方法中,第一行是我在该类中全局可用的 myNumbers 数组的声明。 ***请注意,我的实体有多个属性,我有一个属性“数字”和一个属性“名称”,它是一个字符串。
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”属性对表格视图中的数据进行排序。
【问题讨论】:
标签: ios uitableview swift core-data