J'essaie de créer un NSPredicate pour trouver des 'projets' qui contiennent des 'sessions' dans une certaine plage de dates. J'ai essayé tout d'abord:Données de base ANY BETWEEN prédicat
[NSPredicate predicateWithFormat:@"ANY sessions.date BETWEEN {$STARTDATE, $ENDDATE}"];
Mais je reçois une exception:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'to-many key not allowed here'
Il semble ENTRE ne fonctionne pas avec les de cette façon. Je suis aussi limité dans l'utilisation de() et ET clauses qui signifie que je ne peux pas utiliser quelque chose comme:
[NSPredicate predicateWithFormat:@"ANY (sessions.date > $STARTDATE && sessions.date < $ENDDATE)"];
Si je tente que je reçois une erreur d'analyse. Et bien sûr, sessions.date est vraiment un jeu si ANDing comme ça n'a pas vraiment de sens.
Comment est-ce que je peux faire ceci?
Merci
MISE À JOUR: Notez que ceci:
[NSPredicate predicateWithFormat:@"ANY sessions.date > $STARTDATE && ANY sessions.date < $ENDDATE"];
est incorrect, car il renvoie un projet où il y a une session supérieure à la date de début et une autre session inférieure à la date de fin, mais pas de session entre.
Wow, je ne savais pas à propos des sous-requêtes. Merci, cela a fonctionné. –
La substance SUBQUERY est un peu noyée dans la documentation NSExpression et ne reçoit pas beaucoup de traitement dans les guides spécifiques aux données de base. Déposez définitivement une demande d'amélioration et faites savoir aux gens d'Apple où vous l'auriez recherché (mais sans trouver l'information dont vous aviez besoin). –