按两个相关属性对核心数据实体进行排序

时间:2012-02-23 11:01:10

标签: iphone ios core-data nsmanagedobject nssortdescriptor

假设我有一个具有两个NSNumber属性的Core Data实体:value1value2

我想构建一个NSFetchedResultsController,这样我就可以在表格视图中显示我的属性。表格视图应按totalValue排序,通过汇总value1value2来计算。

totalValue = [NSNumber numberWithInt:([value1 intValue] + [value2 intValue])];

totalValue未存储在数据库中,因为它很容易从value1value2派生。

我可以通过两个独立的属性对NSFetchedResultsController进行排序,但如何使用两个相关属性对其进行排序,例如按totalValue排序,value1和{{的组合1}}吗

我可以继承value2,但是我可以创建一个NSManagedObject,以便对我的子类NSSortDescriptor中的方法进行排序吗?

我知道我可以轻松地将NSManagedObject存储在数据库中,但是如果我想根据与用户位置的距离对位置进行排序呢?比存储距离不是一种选择。

2 个答案:

答案 0 :(得分:0)

您可以轻松地将总值声明为对象中的方法。您还可以使用瞬态值,这意味着在数据库中找不到该值。 然后你只需要创建一个排序描述符。

使用起来非常简单,并且使用了很多来排序

答案 1 :(得分:-1)

如果我是你,我会将totalValue添加为我实体的新属性,这样你的实体就可以按value1和/或value2和/或totalValue进行排序。