gpt4 book ai didi

ios - 在 Realm - Swift 中按字符串值(语言环境)对数组进行排序

转载 作者:行者123 更新时间:2023-11-28 06:37:42 27 4
gpt4 key购买 nike

我正在尝试对 Realm 对象进行排序。以下代码根据标题用字母 A-Z 对所有歌曲进行正确排序。

self.allSongs = realm.objects(Song.self).sorted("_title")

问题是我需要包括 Å、Ä 和 Ö(语言环境)。以下代码有效。它对歌曲进行正确排序。

realm.objects(Song.self).sort {
$0.title.compare($1.title, locale: swedish) == .OrderedAscending
}

问题是我无法将结果分配给我的歌曲数组。这一行给我一个错误:“无法将 [Song] 类型的结果分配给类型结果”。

self.allSongs = realm.objects(Song.self).sort {
$0.title.compare($1.title, locale: swedish) == .OrderedAscending
}

有没有办法将其转换为正确的类型?

最佳答案

Realm 本身不允许对语言环境敏感的排序(参见问题 realm/realm-cocoa#2004 )。您使用的排序是由 Swift 标准库定义的内存中排序(参见 SequenceType.sort() ),而不是 Realm 排序(参见 Results.sorted(_:) )。

您将无法将 Swift.Array 重新分配、转换或转换为 RealmSwift.Results

如果您想从 Results 功能中受益,例如自动更新和延迟加载,您需要在模型上存储一个规范化的字符串,以便使用 Realm 的排序进行排序。您可以在数据模型中存储普通字符串和“规范化”版本,在将值存储到 Realm 之前执行大小写折叠,可能使用 CFStringTransform .然后您可以搜索该字符串(同时规范化您的搜索输入)。

关于ios - 在 Realm - Swift 中按字符串值(语言环境)对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38726374/

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