NSPredicate и Core Data: извлечение объектов из отношений

У меня есть структура модели Core Data, подобная следующей:

Product <-->> OrderProduct where the relationship (from Product to OrderProduct) is called productOrders while the inverse is called product

Order <-->> OrderProduct where the relationship is called orderProducts while the inverse is called order

Client <-->> Order where the relationship is called orders while the inverse is called client

В пределах UIViewController Я использую NSFetchRequest связан со следующим предикатом:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ANY productOrders.order.client.code == %@)", clientCode];

Предикат работает хорошо. Я могу получить продукты для одного (или нескольких) заказов, которые связаны с конкретным клиентом.

Теперь я должен добавить еще один шаг. Найти последний заказ (заказ по дате) для конкретного клиента. Я пробовал следующий предикат, но он не работает:

  NSPredicate* predicate = [NSPredicate predicateWithFormat:@"(ANY productOrders.order.client.code == %@ AND productOrders.order.@max.orderDate)", clientCode];

где orderDate имеет тип NSDate,

Должен ли я использовать SUBQUERY? Как мне этого добиться? Заранее спасибо.

2 ответа

Решение

Я смог решить проблему с передачей даты извне. Другими словами, я сначала вычислил дату последнего заказа для конкретного клиента, а затем передал ее заинтересованному элементу (который реализует запрос).

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"ANY productOrders.order.client.code == %@ AND productOrders.order.orderDate == %@", clientCode, lastDate];

Я не знаю, может ли быть правильно, но это работает.

Надеюсь, поможет.

Вы можете использовать sortDescriptor для вашего fetchrequest (fetchrequest принимает массив sortdescriptors).

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"productOrders.order.orderDate" ascending:NO];

[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];

редактировать: см. комментарий NeverBe

Другие вопросы по тегам