2016-10-29 2 views
0

J'ai une configuration assez simple NSPredicateEditor, et tous les prédicats basés sur les chaînes fonctionnent correctement, mais les prédicats d'entier provoquent une exception.NSPredicateEditor ne gère pas les valeurs entières

L'éditeur de prédicat semble être configuré correctement ...

enter image description here

... mais chaque fois que je choisis une de ces valeurs à la main gauche de l'éditeur de prédicats, je reçois cette exception, comme l'éditeur de prédicat est le traitement de la nombre comme une chaîne:

2016-10-29 10:48:12.416 PredicateBarTesting[29041:303] -[__NSCFNumber length]: unrecognized selector sent to instance 0x37 2016-10-29 10:48:12.419 PredicateBarTesting[29041:303] An uncaught exception was raised

exception complète: http://d.pr/n/XT97

Des idées?

code source: http://d.pr/f/Ng2l

+0

Les propriétés de chaîne 'level',' ownerPID' et/ou 'windowID' sont-elles? – Willeke

+0

@Willeke Non, ce sont toutes des formes d'entiers (int32_t, pid_t, et uint32_t, respectivement). – user66649

+0

L'exception est dans '- [NSString compare: options: range:]'. – Willeke

Répondre

1

Les expressions de gauche dans l'éditeur de prédicats modèle de ligne qui devraient être 'Keypaths' au lieu de 'valeurs' Contant (chaînes).

+0

Bonne prise. Cela pourrait en effet être le correctif, mais il semble que je cours dans un bogue Xcode où Keypaths sont transformés en valeurs constantes. Et chaque fois que j'essaie de le changer, Xcode efface la liste. Vérifiez la vidéo: http://d.pr/v/cayf – user66649

+0

Fermez et ouvrez le projet et réessayez. – Willeke

+0

SOLUTION: J'ai finalement dû éditer le fichier XIB à la main. Redémarrer Xcode et nettoyer les caches n'a pas aidé, et chaque fois que je touche les paramètres de NSPredicateTemplate dans IB, ils reviennent à des valeurs constantes. – user66649