iphone - 使用 NSFetchedResultsController 排序时如何忽略前缀 "A"和 "The"?

标签 iphone database ios4 sorting core-data

我正在使用 CoreData 来保存保存在 SQLite 数据库中的书籍信息。按标题排序时,我想忽略“A”和“The”前缀。例如,当有书:“The Code Book”和“Fermat's Enigma”时,我希望“Fermat's Enigma”排在“The Code Book”之前,因为“The”应该被忽略。

除了添加一个不带前缀的标题的持久属性之外,我找不到任何方法来做到这一点。 (在上面的例子中,那个属性说'titleNoPrefixes'应该包含“Code Book”字符串)。在 CoreData 中似乎不可能基于计算属性(也称为 transient 属性)进行排序。

添加持久属性显然是一种糟糕的数据库设计,但我看不到其他方法。有什么建议吗?

最佳答案

约书亚

您的问题几乎与作为持久存储的核心数据无关,这是对文本问题进行一般数据库排序。您的问题的传统解决方案是使用一个普通的表单字段作为排序类别。您可能希望将所有内容都小写并去除该字段的干扰词。由于这些只是标题,因此在存储方面并不是特别昂贵。此外,这是一个插入时间操作而不是搜索时间操作。最后, transient 变量只存在于 RAM 中。我相信,它们在数据存储区中是 NULL 值。因此,搜索它们是没有意义的并会引发异常。

安德鲁

关于iphone - 使用 NSFetchedResultsController 排序时如何忽略前缀 "A"和 "The"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947976/

相关文章:

iphone - 如何从主包的资源中获取图像路径

mysql - 存储过程中的年计算

c# - 类到数据集/数据集到类

objective-c - Xcode for How to call function from one class to another class function in iPhone Apps

iphone - 如何对扑克牌的 NSMutableArray 进行排序

iphone - iOS 版本之间的 UIKeyboardWillShowNotification、UIKeyboardWillHideNotification 和 NSNotificationCenter 问题

iphone - 如何以编程方式创建 UIScrollView?

iphone - 如何访问我在相机应用程序中保存的照片的相册?

mysql - 为什么我不能删除 MySQL 数据库?

iphone - Xcode - 帮助将一些代码实现到基于 View 的应用程序中?