2012-07-09 4 views
0

난 다음 코드 자 NSPredicate를 사용하여 붙어있다 : 나는 카운트가 4000에가는 경우에 따라서, 너무 이후 루프가 문제가 발생하는 많은 반복을 위해가는 ifelse 블록을 제거해야nspredicate를 사용하는 방법은 무엇입니까?

for (int i=0; i<[nodes count]; i++) 
{ 
    NSMutableDictionary *dict=[nodes objectAtIndex:i]; 

    NSInteger docid = [[dict objectForKey:@"docid"] integerValue]; 
    NSString *strPred = [NSString stringWithFormat:@"docId == %i",docid]; 
    [request setPredicate:[NSPredicate predicateWithFormat:strPred]]; 
    NSArray* objects=[[context executeFetchRequest:request error:nil] retain]; 
    NSPredicate *objCount = [NSPredicate predicateWithFormat:[objects count]]; 

    if([objects count])//how do i reduce these if else block too using nsprdicate 
    { 
     [dict setObject:@"1" forKey:@"isbookthere"]; 
    } 
    else 
    { 
     [dict setObject:@"0" forKey:@"isbookthere"]; 
    } 
    [objects release]; 
    [nodes replaceObjectAtIndex:i withObject:dict]; 
} 

중위 이 위험을 줄이기 위해 NSPredicate를 사용한다고 가정합니다.

답변

0

당신은 단순히 0으로 초기화 된 var를 가질 수 있습니다. 개체 수가 0보다 큰 경우 단순히 var 값을 변경하십시오. 나는 당신의 설명에서 이것을 많이 예측할 수있었습니다. 내가 어딘가에 틀렸다면 알려줘.

관련 문제