我正在开发一个简单的Core Data应用程序。我有两个班级:Client
和Home
。客户端和家庭之间存在一对多的关系(即,客户可以拥有许多家庭。在其他属性中,Home
类有一个名为purchaseDate
的。
我正在尝试在Client
类上编写两种方法:-homesByDate
和 - firstHome
。 -homesByDate
应返回按purchaseDate
排序的客户主页的NSArray或NSSet。 -firstHome
应该只返回客户购买的第一个房屋。
我知道给定客户端,我可以使用self.homes
访问所有客户的家,但我如何实现上述方法?这是否涉及应用某种NSPredicate?
帮助!谢谢!
答案 0 :(得分:2)
您寻求NSSortDescriptor
!
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"purchaseDate" ascending:YES];
//Obtain arrayOfHomes however you'd like
homesByDate = [arrayOfHomes sortedArrayUsingSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
firstHome = [homesByDate objectAtIndex:0];
我还应该指出,让NSArrayController为你做排序是很常见的(例如,homesByDate
只是用于在表视图中显示)。您可以使用setSortDescriptors
或使用绑定。 (如果您希望用户能够从多个订单中进行选择,这也很方便。)