我必须根据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。