2012-03-19 5 views
0

2 개의 속성, NSDate 및 부울 값이있는 엔티티가 있습니다. (이것은 큰 "테이블"이 될 것입니다)코어 데이터, 개수 및 그룹 by

두 날짜 사이의 부울 값에 대해 YES와 NO 값을 모두 계산해야합니다. 내가 어떻게 할 수 있니?

The result I'm looking for is 
{ 
totalYes = 10, 
totalNo = 5, 
date = dd-mm-yyyy 
}, 
{ 
totalYes = 15, 
totalNo = 3, 
date = dd-mm-yyyy 
}, 

감사

당신은이 방법을 시도 할 수 있습니다

답변

1

:

1) 날짜

2으로 분류 YES와 모든 enteties을 얻기를)이 배열 물마루 이동 요일 값과 예 수와 함께 사전으로 배열 채우기

3) 그런 다음 noe 's로 ame 일을하고 그 사전의 배열에 no를 추가하십시오.

NSFetchRequest *request = [[NSFetchRequest alloc]init]; 
request.entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:context]; 
request.predicate = [NSPredicate predicateWithFormat:@"yesorno = %@",YES]; 

NSError *error = nil; 
request.sortDescriptors =[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]]; 
//Here you get all the enteties with YES,sorted by date 

NSArray *days = [context executeFetchRequest:request error:&error]; 
NSMutableArray *arrayOfDates = [NSMutableArray array]; 
int firstDay = [[[NSCalendar currentCalendar]components:NSDayCalendarUnit fromDate:[[days objectAtIndex:0]date]]day]; 
//Add the first day dictionary 
[arrayOfDates addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[[days objectAtIndex:0]date],@"Day", nil]; 

int numberOfYes = 0; 
int dayNumber = 0; 
for(NSManagedObject *day in days) 
{ 
    if([[[NSCalendar currentCalendar]components:NSDayCalendarUnit fromDate:[day date]]day]>firstDay) 
    { 
     //save number of yeses for the previous day,because we are done with it 
     [[arrayOfDates objectAtIndex:dayNumber]setValue:[NSNumber numberWithInt:numberOfYes] forKey:@"NumberOfYes"]; 
     numberOfYes = 1; 
     dayNumber++; 
     firstDay = [[[NSCalendar currentCalendar]components:NSDayCalendarUnit fromDate:[day date]]day];//date with new day 
     [arrayOfDates addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[day date],@"Day", nil];//Add this day dictionary to array 

    }else 
     { 
      numberOfYes++; 
     } 

} 
     //And somrthing similar to No 
+0

감사합니다. 나는 새 항목을 추가 할 때마다 새 항목을 추가 할 때마다 모든 필드를 증가시킨다. 또한 모든 객체를 통해 구문 분석 할 필요가없는 것 같습니다. –

+0

네, 정말 좋은 방법입니다) –