J'ai deux types d'objections: emplacements et éléments d'historique. J'essaie d'aller chercher des emplacements qui sont attachés à n'importe quel article d'historique, alors mon prédicat de récupération de l'emplacement est "Historique. @ Nombre> 0", qui fonctionne bien.
J'aimerais aussi trier les objets de localisation avec Un NSSorteDescriptor à la date de leur dernier élément d'histoire, qui aussi loin que possible, ce serait "Histoire. @ max.time", cela jette cependant l'erreur suivante: P>
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Keypath containing KVC aggregate where there shouldn't be one; failed to handle history.@max.time'
4 Réponses :
probablement pas la meilleure solution, mais vous pouvez toujours retirer les données et le trier après le fait. Jetez un coup d'œil à Tri et filtrage des objets Nsarray . p>
Voici quelques codes que j'ai où je fais des mêmes
Une idée de ce qui aurait pu le corriger? Je ne peux pas vraiment voir quoi que ce soit dans ce code qui aurait pu être la solution ...
Je ne suis pas sûr exactement ... Avez-vous votre entité sublancée? Les deux miennes sont (donc dans l'exemple ci-dessus de l'entité, je fais la récupération et que l'entité des articles est sous-classée) Je n'ai rien de spécial dans la sous-classe pour les articles, donc je ne me souviens donc pas vraiment pourquoi je l'ai sous-classée, alors peut-être peut-être C'était pourquoi ... une autre pensée est dans mon entité d'articles l'attribut postdate que je fais que le @max sur i est configuré dans le modal à indexé. Peut-être essayer cela. Assurez-vous également que votre valeur de date a une valeur par défaut. J'utilise: 1980-01-01 00:00:01
afaik, vous devez utiliser Collection Opérateurs , décrit dans le -Value Guide de programmation de codage , pour les chemins de clé de vos descripteurs de tri collections ( Vous ne devez pas utiliser les opérateurs de collecte pour les chemins de clé de vos descripteurs de tri avec des demandes de récupération ( @kdbdallas utilise correctement un opérateur de collection pour trier un Ce serait doux si si les opérateurs de collecte ont fonctionné pour spécifier les chemins de clés par lesquels trier les demandes de récupération. Veuillez soumettre cette demande de fonctionnalité sur http://bugrepor.apple.apple.com/ . Plus il est rapporté, plus ils le soutiendront. P> nsarray code>,
nsset code>,
nsdicdiction code>). P>
nsfetchrequest code>). p>
Nsarray code>. Il ne l'utilise pas pour spécifier le descripteur de tri d'une demande de récupération. P>
J'ai déposé ce problème avec Apple: ID: 9758650, Titre: Les opérateurs de collecte doivent fonctionner avec des données de base, produit: iPhone SDK, classification: Amélioration, date originée: 12-JUL-2011 12:26 AM, État: Ouvert
J'ai soumis RDAR: // 10468062 avec le même titre et un exemple avec les départements et les employés. Plus les gens qui le suggèrent, mieux!
Impossible de trouver le rapport de bogue 10468062 sur le radar ouvert. Cela aiderait vraiment donc je pourrais plus facilement le faire duper.
Depuis iOS 13 (et amis), vous devriez être capable de créer un dérivé Attribut appelé historiqueMaxTime code> avec l'expression de dérivation
max: (historique.time) code> puis définir
fetchrequest.sortdescriptors = @ [[[[[[[[[[NSSRèmeScriptor SortDescriptorWithkey: @ " HistoireMaxTime "Ascendant: Non]] Code> P>
Est
emplacement.history code> un tableau / set? (Semble être un, mais vous avez une forme singulière.)
C'est une relation à de nombreuses personnes qui l'impliqueraient. La forme singulière est mon mauvais, mais je ne veux pas gâcher en ce moment pour éviter de ne rien briser.
Joonas, avez-vous compris cela? Je suis dans la même situation et obtenez cette même erreur. Merci
J'ai bien peur que je ne l'ai pas fait, la liste reste actuellement triée selon laquelle les données de base veulent le représenter car j'avais plus de problèmes à traiter. Serait génial d'avoir une solution cependant.
J'ai totalement oublié de quitter le commentaire ci-dessus et j'ai depuis "en quelque sorte" géré pour obtenir @ "articles. @ Max.postdate", fonctionnant. J'ai couru dans cet article à la recherche de la réponse à un problème similaire. Dans une pièce de code différente, j'essaie d'utiliser: @ "@ max.unreadarticles" et obtenez l'erreur: la recherche d'entité n'est pas conforme à la valeur de la valeur de la clé pour la clé "@max", je posterai ce que je peux voir comme " Possible "Des choses qui auraient pu être la solution, dans une réponse ci-dessous.