0

単語が作成されるときに文字の「加重」リストを作成しようとしています。NSArray に大量の単語リストがあります。たとえば、入力された最初の 2 文字に基づいて、すべての単語の 3 文字目だけで満たされた新しい NSArray を取得しようとしています。

これまでのところ...

NSArray *filteredArray;
if (currentWordSize == 0) {
    filteredArray = wordDictionary
}
else {
    NSPredicate *filter = [NSPredicate predicateWithFormat:@"SELF beginswith[cd] %@", filterString];
    filteredArray = [wordDictionary filteredArrayUsingPredicate:filter];
}

そして、それは単語全体をフィルター処理された配列に入れるのに適していますが、それはまさに私が必要としているものではありません. からのfilteredArrayランダムの1番目、2番目、または3番目の文字だけで を埋める方法を誰かに教えてもらえますか?NSStringwordDictionary

編集:私の質問を明確にしました。

4

1 に答える 1

2

NSPredicateこれに使用したいものではありません。 NSPredicate1 つ以上の基準に基づいてオブジェクトを評価し、yes/no の結果を返すだけなので、テスト対象の項目を実際に操作することには使用できません。

配列内の各文字列の 3 番目の文字を取得し、結果を新しい配列に入れるには、次のようにします。

NSArray* wordDictionary;
NSMutableArray* filteredArray = [[NSMutableArray alloc] init];

for (NSString* aString in wordDictionary)
{
    if ([aString length] > 2)
        [filteredArray addObject:[aString substringWithRange:NSMakeRange(2, 1)]];
    else
        [filteredArray addObject:@""]; //there is no third letter
}
于 2010-07-21T16:13:48.623 に答える