核心数据 - 简单查询问题

时间:2010-07-30 01:37:19

标签: iphone objective-c core-data

我正在开发一个简单的Core Data应用程序。我有两个班级:ClientHome。客户端和家庭之间存在一对多的关系(即,客户可以拥有许多家庭。在其他属性中,Home类有一个名为purchaseDate的。

我正在尝试在Client类上编写两种方法:-homesByDate和 - firstHome-homesByDate应返回按purchaseDate排序的客户主页的NSArray或NSSet。 -firstHome应该只返回客户购买的第一个房屋。

我知道给定客户端,我可以使用self.homes访问所有客户的家,但我如何实现上述方法?这是否涉及应用某种NSPredicate?

帮助!谢谢!

1 个答案:

答案 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或使用绑定。 (如果您希望用户能够从多个订单中进行选择,这也很方便。)