Ios 按领域排序(字母、数字、特殊字符)

Ios 按领域排序(字母、数字、特殊字符),ios,swift,realm,Ios,Swift,Realm,我是新来的。我创建了一个songbook应用程序,我需要按字母顺序显示歌曲。从A到Z到数字和特殊字符。我这一类人看起来像这样 realm.objects(T.self).sorted(byKeyPath: "title") 这是排序我的名单,但问题是特殊字符总是在名单的顶部。现在我想先实现字母表排序,然后是数字,最后是特殊字符。有人能帮我吗?提前谢谢你 您可以使用 let objects = realm.objects(T.self).sorted(byKeyPath: "title",

我是新来的。我创建了一个songbook应用程序,我需要按字母顺序显示歌曲。从A到Z到数字和特殊字符。我这一类人看起来像这样

realm.objects(T.self).sorted(byKeyPath: "title")
这是排序我的名单,但问题是特殊字符总是在名单的顶部。现在我想先实现字母表排序,然后是数字,最后是特殊字符。有人能帮我吗?提前谢谢你

您可以使用

   let objects = realm.objects(T.self).sorted(byKeyPath: "title", ascending: true)
或者在使用

let sortedObjects = objects.sorted { $0.title.localizedCaseInsensitiveCompare($1.title) == ComparisonResult.orderedDescending }

您是否需要将排序后的集合保持为自动更新的
结果
实例,或者如果将其转换为
数组
,则可以实现排序?转换为数组很好。但它包含数千条记录。@AlvinJohn,在下面找到我的答案。@a-munzer-看来这两种方法返回的结果不一样。为
realm.objects.sortedByKeyPath
提供的排序描述符的结果将是:
[As,Cool,Ąć,Ćma]
localizedCaseInsensitiveCompare
的结果将有效:
[As,Ąć,Cool,Ćma]
。我给了你+1来提供两种排序方法,但是你的回答需要更新。