按两个依赖属性对核心数据实体进行排序
Posted
技术标签:
【中文标题】按两个依赖属性对核心数据实体进行排序【英文标题】:Sorting Core Data entities by two dependent attributes 【发布时间】:2012-02-23 11:01:09 【问题描述】:假设我有一个具有两个 NSNumber 属性的核心数据实体:value1
和 value2
。
我想构造一个NSFetchedResultsController
,这样我就可以在表格视图中显示我的属性。表格视图应按totalValue
排序,女巫通过将value1
和value2
相加计算得出。
totalValue = [NSNumber numberWithInt:([value1 intValue] + [value2 intValue])];
totalValue
未存储在数据库中,因为它很容易从value1
和value2
派生而来。
我可以通过两个独立的属性对NSFetchedResultsController
进行排序,但是如何使用两个依赖属性对它进行排序,例如按totalValue
排序,value1
和value2
的组合?
我可以将NSManagedObject
子类化,但我可以创建一个NSSortDescriptor
以便它对我的子类NSManagedObject
中的方法进行排序吗?
我知道我可以轻松地将totalValue
存储在数据库中,但是如果我想根据与用户位置的距离对位置进行排序怎么办?比存储距离不是一种选择。
【问题讨论】:
【参考方案1】:您可以轻松地将总值声明为对象中的一种方法。您还可以使用瞬态值,这意味着在数据库中找不到该值。 然后你只需创建一个排序描述符。
使用很简单,排序用了很多
【讨论】:
【参考方案2】:如果我是你,我将为我的实体添加 totalValue 作为新属性,这样你的实体就可以按 value1 和/或 value2 和/或 totalValue 排序。
【讨论】:
以上是关于按两个依赖属性对核心数据实体进行排序的主要内容,如果未能解决你的问题,请参考以下文章