我有一个带有多个 sortDescriptor 的标准核心数据设置
func getPilots() -> [PilotEntity] {
let request = PilotEntity.fetchRequest()
let primarySortDescriptor = NSSortDescriptor(key: "isSelf", ascending: false)
let secondarySortDescriptor = NSSortDescriptor(key: "isFavourite", ascending: false)
let tertiarySortDescriptor = NSSortDescriptor(key: "name", ascending: true)
request.sortDescriptors = [primarySortDescriptor, secondarySortDescriptor, tertiarySortDescriptor]
do {
return try fetch(request)
} catch {
print("Error Fetching PilotEntity. \(error)")
return []
}
}
我正在使用 SwiftUI 列表中的
PilotEntity
。当 name
包含变音符号时,我注意到一个奇怪的行为。更新 PilotEntity
时,包含带有变音符号的名称的列表会立即重新排列(索引 9 位于索引 7 处,然后跳转到应在的位置 9)。当删除变音符号时,行为就会停止。
我已将选择器添加到排序描述符
NSSortDescriptor(key: "name", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
来处理变音符号。这已经阻止了列表视图中的意外行为。