2012-05-10 6 views
0

Je récupère des enregistrements à partir des données de base et les remplis NSMutableArray avec eux, maintenant je veux les filtrer avec le code ci-dessous mais ne fonctionne pas correctement. Comment devrais-je le faire?Filtrer NSMutableArray avec NSPredicate

[array filterUsingPredicate:[NSPredicate predicateWithFormat:@"date==%@",date1 ]]; 
//date = a field with format NSDate in core data 
//date1 = NSDate 
+0

Vous allez devoir nous donner plus que cela; en quoi les résultats sont-ils incorrects? – Tommy

+0

Je vérifie les résultats dans la matrice avant de faire ce filtre et les résultats sont corrects et après utilisation ce code aucun enregistrement n'existe dans array ([array count] = 0) bien que array devrait avoir 3 enregistrements –

+1

Question de suivi évidente - vous êtes sûr les dates sont exactement égales? NSDate est précis au moins jusqu'à la seconde et vous testez pour l'égalité exacte. Si vous pouviez nous montrer un NSLog de votre tableau avant le filtrage et la date1 cela pourrait aider. – Tommy

Répondre

0

Peut-être qu'il est à cause de ce que vous entrez la date avec le temps et quand vous voulez filtrer tableau avec date1 le temps de date1 ne correspond pas à ce jour que vous stockez dans les données de base

oeil à ce code et entrez un date sans heure

NSDate *dateTime=[NSDate date]; 
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
[calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; 
NSDateComponents *components = [[NSDateComponents alloc] init]; 
components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit 
         fromDate:dateTime]; 
NSDate *dateOnly = [calendar dateFromComponents:components]; 
1

Pourquoi ne pas utiliser le prédicat dans votre NSFetchRequest et garder le NSArray peuplé avec seulement les dossiers dont vous avez besoin?

+0

Je l'ai fait et j'ai besoin de le filtrer à nouveau. –

+0

Modifiez le prédicat et déclenchez à nouveau la demande d'extraction. –

Questions connexes