Пересечь граф объекта Core Data с добавленным предикатом? - PullRequest
0 голосов
/ 15 июля 2010

Я хочу загрузить объект клиента, а затем получить связанные с ним заказы на покупку, основываясь на том, были ли они размещены или нет, заказы на покупку имеют свойство IsPlaced BOOL.

Итак, у меня есть объект клиента, и я могуполучить все заказы на покупку, как это, и это прекрасно работает:

purchaseordersList =[[myclient.purchaseorders allObjects] mutableCopy];

Но в идеале я бы хотел на самом деле 2 массива - по одному для каждого типа заказа: IsPlaced = YES и IsPlaced = NO

Какя делаю это здесь?Или мне нужно сделать еще одну выборку?

1 Ответ

0 голосов
/ 15 июля 2010

Во-первых, нет смысла превращать набор в массив, если вы не сортируете его, и нет причины превращать этот массив в изменяемый массив.Вы получили это из примера кода?

Во-вторых, вы можете фильтровать массив или набор с помощью предиката, чтобы вы могли легко создать два набора (или массива) с помощью:

NSSet *placed = [[myclient purchaseorders] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"isPlaced == YES"]];
NSSet *notPlaced = [[myclient purchaseorders] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"isPlaced == YES"]];

Если вы хотите использовать это для UITableView, тогда посмотрите на NSFetchedResultsController.Это сэкономит вам МНОГО кода котельной пластины.

Вы помните, из какого примера кода вы получили это?Я видел это -mutableCopy много в последнее время и хотел бы отменить это.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...