排序NSFetchedResultsController

时间:2014-01-06 10:02:31

标签: ios objective-c cocoa-touch nsfetchedresultscontroller

我必须根据3个属性通知时间,就座时间和等待时间对Fetch结果控制器进行排序。我的自定义对象具有所有这些属性。目前我正在使用以下代码进行排序。现在我想在NSSortDescriptor中形成一个组。现在问题是我想首先显示首先通知的对象,所以我用作第一个描述符,但它以相反的顺序给出了列表。

如果第一个描述符我给出“是”,那么它将显示在列表的底部。但我不希望这样。任何人都可以帮助我。

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"notifiedTime" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"waitingTime" ascending:YES];
NSSortDescriptor *sortDescriptor3 = [[NSSortDescriptor alloc] initWithKey:@"seatedTime" ascending:YES];
fetchRequest.sortDescriptors = @[sortDescriptor3, sortDescriptor1, sortDescriptor2];

示例:

对象1:通知时间= 90分钟。            waitingTime = 5分钟。            seatTime = 5:45 pm。

对象2:通知时间= 5分钟。            waitingTime = 30分钟。            seatTime = 6:45 pm。

对象3:通知时间= 20分钟。            waitingTime = 15分钟。            seatTime = 3:45 pm。

对象4:informedTime = nil。            waitingTime = 35分钟。            seatTime = 6:45 pm。

对象5:informedTime = nil。            waitingTime = 55分钟。            seatTime = 3:45 pm。

预期结果:

对象1 - 因为它具有最高的通知时间。

对象3 - 其通知时间小于对象1。

对象2 - 其通知时间小于对象3。

对象5 - 通知时间为零且等待时间最长。

对象4 - 通知时间为零,等待时间小于对象5。

0 个答案:

没有答案