使用枚举对CoreData对象进行排序



我需要对包含波斯字母表的核心数据对象进行排序。我正在使用NSSSortDescriptor。不幸的是,苹果不支持波斯字母表,并且基于波斯字母表的排序不正确。之后,我将在我的应用程序中将波斯字母表定义为枚举,并根据它对数据对象进行排序。请帮助如何根据预定义的顺序对数据对象排序。

NSSortDDescriptor*sd=[NSortDDescriptor sortDDescriptorWithKey:@"lastname"升序:YES];

如果您使用的是基于SQLite的核心数据存储,这是不可能的。有了这种持久存储,获取请求将转换为SQL并在SQLite中执行。但SQLite对应用程序中声明的枚举一无所知,因此无法使用它们。只有托管对象上的持久属性可用。如果您使用的是二进制持久存储(NSBinaryStoreType),那么您可能很幸运——但这还有其他问题,比如Core Data一次将整个持久存储加载到内存中。

话虽如此,如果苹果不支持波斯字母表,那将是非常令人惊讶的。如今,几乎所有与文本相关的东西都使用Unicode,因此,几乎所有人类已知的书写系统都得到了支持(即使是不再使用的古代系统)。有关详细信息,请查看Unicode8.0字符代码表,其中的所有内容都应该得到支持。如果你在核心数据中使用波斯字母表时遇到问题,我建议你问一个新问题,详细说明你在做什么(包括一些不熟悉你的字母表的人的示例文本)以及出了什么问题。

最新更新