gpt4 book ai didi

swift - 核心数据 : Trying to sort

转载 作者:行者123 更新时间:2023-11-30 12:40:27 25 4
gpt4 key购买 nike

我有两个实体:EntityA 和 (<-->>) EntityB

我正在尝试获取按EntityB.displayOrder排序的所有EntityA

let request: NSFetchRequest<EntityA> = EntityA.fetchRequest()
context.perform {

do{
var data = try self.context.fetch(request)
let sort = NSSortDescriptor(key: "displayOrder", ascending: true)

for (index,dat) in data.enumerated() {
let entitiesB = (dat.entitiesB?.sortedArray(using: [sort]))
data[index].entitiesB! = NSSet(array: entitiesB!)
}

self.testListTableVC.testData2 = data
self.testListTableVC.tableView.reloadData()

}
}
}

排序似乎有效,但是当将其设置回data时,它没有排序..

最佳答案

您正在对 entitiesB 进行排序,然后将 data[index].entitiesB 设置为等于转换为 NSSet< 的 entitiesB/。如果您在 docs 中阅读了有关 NSSet 的内容,您会看到它们不是排序列表。

您本质上是在做多余的工作,因为您正在对该数组进行排序,然后将其转换为未排序的 NSSet

我不知道您如何设置模型,但您的 testListTableVC.testData2 属性似乎需要此data。看起来无论 data 是什么类型的数组,它都有一个名为 entitiesB 的属性,它是一个 NSSet。我建议您这样做,以便您可以使用 Swift 数组,这样可以保持组织有序。

关于swift - 核心数据 : Trying to sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302327/

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