2

複数の単語セットを含む配列をフィルター処理して、述語を使用して文字列で始まる単語のみを含むフィルター処理された配列を取得できるかどうかを知りたいです。

私は例が一人で話すと思います:

配列:

  • ピーマン
  • 白ぶどう

@"pe"のフィルター処理された配列

  • ピーマン

現在、私は次のような1つの述語を適用しています。

  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",searchText];
  NSArray *tempArray = [[self.searchContent objectAtIndex:INGREDIENT] filteredArrayUsingPredicate:predicate];
  [self.ingredientsFiltered addObjectsFromArray:tempArray];

しかし、@ "pe"もピーマンのサブストリングであるため、これによりピーマンと白ブドウの両方が得られます。これを達成するための推奨される方法はありますか?

4

1 に答える 1

2

これで試してみてください、

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", [NSString stringWithFormat: @".*\\b%@.*",searchText]];
于 2012-12-05T23:48:06.330 に答える