2012-07-09 2 views
0

je suis coincé avec l'aide nspredicate dans le code suivant:comment utiliser nspredicate pour cela?

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]; 
} 

je dois retirer le bloc ifelse trop car, si le nombre va à 4000 la boucle va pour les nombreuses itérations qui causent problème, si afinde Pour réduire ce risque, je suis supposé utiliser NSPredicate.

Répondre

0

vous pouvez simplement avoir un var initialisé avec zéro .. si le nombre d'objets est supérieur à zéro, il suffit de changer la valeur var. Je pourrais prédire cela à partir de votre explication. Faites-moi savoir si je me trompe quelque part.