我想加载一个客户对象,然后根据它们是否已被放置来提取相关的采购订单,采购订单具有IsPlaced BOOL属性。
所以我有我的客户对象,我可以得到这样的所有采购订单,这很有效:
purchaseordersList =[[myclient.purchaseorders allObjects] mutableCopy];
但理想情况下我实际上会喜欢2个数组 - 每个订单类型一个:IsPlaced = YES和IsPlaced = NO
我在这里怎么做?或者我是否需要再次获取?
答案 0 :(得分:0)
首先,没有理由将该集合转换为数组,除非您对它进行排序,并且没有理由将该数组转换为可变数组。你从一些示例代码中得到了吗?
其次,您可以使用谓词过滤数组或集合,以便通过以下方式轻松创建两个集合(或数组):
NSSet *placed = [[myclient purchaseorders] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"isPlaced == YES"]];
NSSet *notPlaced = [[myclient purchaseorders] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"isPlaced == YES"]];
如果您想将其用于UITableView
,请转而查看NSFetchedResultsController
。它将为您节省大量的锅炉代码。
你还记得你从中得到的示例代码吗?最近一直看到-mutableCopy
很多,并且希望能够将它取消。 :)