2012-07-21 3 views
4

핵심 데이터의 고급 부분을 찾으려고합니다. 나는 그것이 SQL이 아니라는 것을 알고 있으며 제한이 있지만 아래의 코드를 NSPredicate로 변환하여 페치 요청에 어떻게 적용 할 수 있습니까?코어 데이터의 NSPredicate 객체 ID로 선택 (및 잠재적으로 합산)

Product* p = self.product; //this is a managed object 
double vol=0; 
for (PlanningItem* pi in self.planitems) { 
if (pi.product==p) 
    vol+=pi.volume; 
  1. 나는 그들의 제품과 같은 페이지가 모든 계획의 아이템을 취득하려고합니다.
  2. 다음 나는 그 세트의 모든 볼륨을 합산하려고합니다.

NSPredicate로 가져 오기 요청에서 1을 수행하는 방법은 무엇입니까? 동시에 2 번 할 수 있습니까?

NSPredicate 문자열을 묻습니다. 나는 Fetchrequest를 직접 만들 수있다.

Tx!

답변

11
// Create the predicate 
NSPredicate *productPredicate = 
    [NSPredicate predicateWithFormat:@"(product == %@)", product]; 

// Apply the predicate to your FetchRequest 
[fetchRequest setPredicate:productPredicate]; 
+0

첫 번째 인상은 객체 ID 대신 문자열에 % @ squishes 제품을 사용한다는 것입니다. 하지만 그것은 매력처럼 작동합니다 - 텍사스. – Vincent