Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 根据价格对核心数据进行排序_Ios_Swift_Sorting_Core Data - Fatal编程技术网

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顺序是随机的。。它不应该是随机的。它可能有一个你看不到的逻辑。你能把价格打印出来吗?