带有变音符号的核心数据排序描述符会导致奇怪的行为

问题描述 投票:0回答:1

我有一个带有多个 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)。当删除变音符号时,行为就会停止。

swiftui core-data swiftui-list
1个回答
0
投票

我已将选择器添加到排序描述符

NSSortDescriptor(key: "name", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
来处理变音符号。这已经阻止了列表视图中的意外行为。

© www.soinside.com 2019 - 2024. All rights reserved.