3

私はテーブルビューに人の名前のプロパティで行を表示しています。テーブルビューにより、ユーザーは名前で検索することができます。たとえば、ユーザーが「crp」と入力すると、名前「Chris Paul」と一致します。

検索文字列を受け取り、配列内のモデルの名前を検索するように NSPredicate をセットアップするメソッドがあります

- (void)setPredicateWithText: (NSString *)searchText
{

    for (int i = 0; i < searchText.length; i ++)
    {
        NSString *character = [searchText substringWithRange:NSMakeRange(i, 1)];
        self.format = [self.format stringByAppendingFormat:@".*%@",character];

        if (i == searchText.length -1) // last character
        {
          self.format = [self.format stringByAppendingString:@".*"];
        }
    }
    // result format == .*c.*r.*p.*
    self.searchPredicate = [NSPredicate predicateWithFormat:@"SELF.name MATCHES '%@'", self.format];
}

および他の方法で:

 self.resultArray = [self.allPlayers filteredArrayUsingPredicate:self.searchPredicate];

しかし、結果として何も返されません...助けてください、ありがとう!!

4

2 に答える 2

0

MATCHES %@の代わりに引用符: を削除することで問題が解決しましたMATCHES '%@'

于 2013-05-10T04:05:27.857 に答える