J'ai un tableau d'objets NSDictionary. Ces dictionnaires sont analysés à partir d'un fichier JSON. Tous les objets de valeur dans le NSDictionary sont de type NSString, une clé est appelée "distanceInMeters".Envoyer une valeur NSDictionary lors de l'application d'un NSPredicate?
je l'avais prévu sur le filtrage de ces tableaux à l'aide d'un NSPredicate, alors j'ai commencé comme ça:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(distanceInMeters <= %f)", newValue];
NSArray *newArray = [oldArray filteredArrayUsingPredicate:predicate];
Je crois que cela aurait fonctionné si la valeur de la clé « distanceInMeters » était un NSNumber, mais parce que Je l'ai à partir d'un fichier JSON tout est NSStrings. Ce qui précède donne cette erreur: ****** - [NSCFNumber length]: sélecteur non reconnu envoyé à l'instance 0x3936f00 ***
Ce qui est logique car je venais d'essayer de traiter un NSString comme NSNumber.
Existe-t-il un moyen de diffuser les valeurs du dictionnaire pendant qu'elles sont filtrées, ou peut-être une façon complètement différente de contourner cela?
quelqu'un L'espoir peut me aider :)
Salut Homer Merci d'avoir fait l'affaire :) Je ne savais pas que vous pouviez taper cast comme ça, NSPredicates sur toute autre chose que NSManagedObjects est nouveau pour moi :) Merci encore – RickiG
FYI, ce n'est pas de type casting; il appelle simplement la méthode "floatValue" sur NSString. –
Ahh Merci je comprends, il est bien sûr accéder à la propriété directement à la place de l'accesseur [NSString floatValue] :) – RickiG