J'essaie de faire une liste de lettres "pondérée" lorsque les mots sont créés. J'ai une liste massive de mots dans un NSArray. Par exemple, je suis en train d'essayer d'acquérir un nouveau NSArray rempli seulement de la 3e lettre de tous les mots basés sur les deux premières lettres entrées.NSPredicate pour filtrer le tableau de mots au tableau de lettres
Jusqu'à présent, je ... ont
NSArray *filteredArray;
if (currentWordSize == 0) {
filteredArray = wordDictionary
}
else {
NSPredicate *filter = [NSPredicate predicateWithFormat:@"SELF beginswith[cd] %@", filterString];
filteredArray = [wordDictionary filteredArrayUsingPredicate:filter];
}
Et ça fonctionne tout bon pour mettre des mots entiers dans le tableau filtré, mais ce n'est pas exactement ce que j'ai besoin. Quelqu'un peut-il me montrer un moyen de simplement remplir le filteredArray
avec juste les 1ère, 2ème ou 3ème lettres d'un NSString
aléatoire du wordDictionary
?
EDIT: clarifié ma question.
Je aurait enlever le reste :) – willcodejavaforfood
Si vous voulez prendre ce un pas de plus, et rendre la pondération plus explicite, vous pouvez utiliser un 'NSCountedSet' pour garder une trace du nombre de fois que chaque lettre est utilisée dans cette position: http://developer.apple.com/library/ios/#documentation/ Cocoa/Référence/Fondation/Classes/NSCountedSet_Class/Référence/Reference.html –