J'ai un tableau d'objets que j'aimerais filtrer en utilisant un prédicat, mais je n'ai pas été capable de comprendre la syntaxe (ou si c'est impossible).Filtrage par rapport aux propriétés d'objets dans un tableau avec un prédicat
Disons que l'objet est emplacement et il a des propriétés de latitude et la longitude . J'ai un tableau de ces appelés tous les magasins et je veux produire un nouveau réseau d'emplacements où la propriété latitude est supérieure à 30.
Lors de l'extraction des objets gérés, vous pouvez simplement utiliser le nom de la propriété, mais pas avec des tableaux:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"latitude > 30.0"];
retours aucun résultat (malgré qu'il y ait beaucoup d'objets avec emplacement latitudes> 30,0
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.latitude > 30.0"];
est pas bon non plus, alors que
.NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[SELF latitude] > 30.0"];
et
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"[location latitude] > 30.0"];
exceptions lancers francs.
Est-ce que je n'ai pas de chance?
filteredArrayUsingPredicate est certainement ce que j'utilise, mais je reçois un tableau vide du premier prédicat, d'où ma question. Je vais jouer à nouveau avec ça pour m'assurer que je ne manque pas quelque chose, mais le tableau vide est la raison pour laquelle j'ai posté la question. –
Quel est le type de latitude? Je viens d'exécuter des tests de prédicat sur un tableau d'objets avec une propriété numérique, et l'équivalent de votre premier prédicat a bien fonctionné pour les propriétés de type 'float' ainsi que' NSNumber'. – Endemic
Bien que je sois certain à 100% que j'étais en train d'exécuter le prédicat sur un NSArray, je l'ai plutôt exécuté sur un NSMutableArray. Je suis surpris qu'il n'y ait eu aucune plainte pendant la construction. Merci de votre aide. –