核心日期一对一排序
Posted
技术标签:
【中文标题】核心日期一对一排序【英文标题】:Core Date One-To-One Sorting 【发布时间】:2011-06-29 10:29:32 【问题描述】:我有一个核心数据模型,它有两个实体,Bid 和 Result。
我希望它们最初在投标没有结果的部分中排序,即从投标到结果的关系为零,然后我希望这个子按日期排序。
理想情况下我会有两个部分:
-
没有按日期排序的结果的投标
出价按日期排序
由于关系可能为零,我看到非常不稳定的结果。使用两个 NSSortDescriptor 首先对关系进行排序,然后对日期进行排序,这将适用于一些条目,然后似乎随机爆炸。
例如
NSSortDescriptor *sectionSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"result" ascending:YES];
NSSortDescriptor *dateSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
我应该如何按照可能为 nil 的关系对实体进行排序?
【问题讨论】:
【参考方案1】:一个 nil 应该计算为零,非 nil 计算为非零,这样你就可以对 nil 进行排序。我认为问题可能在其他地方。
我建议尝试仅使用 nil 进行排序,看看是否可行。这至少会告诉你问题出在哪里。
【讨论】:
问题出在其他地方,当按一对一关系排序时,您正在按外键排序 其实你不是因为Core Data没有外键。这不是 SQL。如果您的意思是您试图对属于另一个实体的对象的属性进行排序,而不是正在获取的实体,那么是的。 当使用 sql 存储时,您的排序在存储中运行。这种关系是使用外键建模的。 这有点类似于在使用 xml 存储时参与将文件写入磁盘的细节。 Core Data 如何冻结对象图并不是一个相关的细节。人们在尝试用 SQL 术语来思考 Core Data 时会遇到很多麻烦。以上是关于核心日期一对一排序的主要内容,如果未能解决你的问题,请参考以下文章