Ios 根据价格对核心数据进行排序
我在Ios 根据价格对核心数据进行排序,ios,swift,sorting,core-data,Ios,Swift,Sorting,Core Data,我在String类型的coredata中有一个名为offerPrice的属性。现在,单击一个按钮,我想根据这个offerprice按升序对coredata数组中的所有元素进行排序 我可以根据名称进行排序,就像这样 let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext let request = NSFetchRequest<NSFetchRequestRes
String
类型的coredata中有一个名为offerPrice
的属性。现在,单击一个按钮,我想根据这个offerprice按升序对coredata数组中的所有元素进行排序
我可以根据名称
进行排序,就像这样
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "NewProduct")
let sort = NSSortDescriptor(key: "name", ascending: false)
request.sortDescriptors = [sort]
do {
newProdDetails2 = try context.fetch(request) as! [NewProduct]
tableview.reloadData()
} catch {
print("Fetching Failed")
}
let context=(UIApplication.shared.delegate as!AppDelegate)。persistentContainer.viewContext
let request=NSFetchRequest(entityName:“新产品”)
让sort=NSSortDescriptor(键:“name”,升序:false)
request.sortDescriptors=[sort]
做{
newProdDetails2=try context.fetch(请求)as![NewProduct]
tableview.reloadData()
}抓住{
打印(“提取失败”)
}
在这个地方,
键:“name”
我试着给offerPrice
而不是name
根据offerPrice
排序。但它不起作用。它可能不起作用,因为字符串是按字典排序的,而不是按数字排序的。ie“9”大于“10”。您应该将价格存储为数字,而不是字符串。您得到的顺序是什么?是因为你有“9.2”和“11.3”这样的价值观吗?这似乎是有道理的。为什么不存储Float/Double/Int(数字)?我可以按升序或降序将数字排序为Int
格式。但我只想像现在一样以字符串格式排序。@Larme顺序是随机的。。它不应该是随机的。它可能有一个你看不到的逻辑。你能把价格打印出来吗?