1

Core データで次の単語で始まる単語を検索する NSPredicate を見つけたいと思います。

例: コア データの説明フィールドには、次のようなテキストがあります。

My name is Mike
My name is Moe
My name is Peter
My name is George

「私の名前は」を検索する場合、3 行を取得する必要があります 「私の名前は M」を検索する場合、最初の 2 行を取得する必要があります

以下のコードを試しましたが、必要なものを取得できません。正規表現が必要だと思いますが、その方法がわかりません。

[NSPredicate predicateWithFormat:@"desc beginswith [cd] %@",word];
4

1 に答える 1

2

私は最近この方法でそれを行い、うまくいきました。やってみて。持っていないことがわかりました[cd]and beginswithbut contains. あなたはそれを試してみることができます。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", textField.text];
NSArray *list = [allWords filteredArrayUsingPredicate:predicate];

for(NSString *word in list){
    NSLog(@"%@",word);
}

最初の投稿のコメントを読んだ後:

まず、文字列内の単語をテキスト フィールドから分割する必要があります。

NSArray *myWords = [textField.text componentsSeparatedByString:@" "];

次に、最初と同じように次のようにします。

for(NSString *wordFromTextField in myWords){
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", wordFromTextField];
    NSArray *list = [allWords filteredArrayUsingPredicate:predicate];

    for(NSString *word in list){
        NSLog(@"%@",word);
    }
}

もちろん、単語を NSLogging する代わりに、それらを配列に追加することもできます。

于 2012-11-11T22:45:08.640 に答える