0

テーブル ビューに検索を実装しようとしています。myArrayCore Data から呼び出された NSMutableArray を設定します。次に、テーブルビューにmyArray

次に、と呼ばれる NSMutableArray がありmySearchArrayます。この配列を使用して検索結果を表示します。フィルタリングに使用するコードは次のとおりです。

-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    [self.mySearchArray removeAllObjects];

    for (MyModel *product in myArray)
    {
        NSComparisonResult result = [product.productName compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];

        if (result == NSOrderedSame)
        [self.mySearchArray addObject:product];
    }
}

問題は、検索が正しく機能しないことです。何かを検索すると、下の画像が表示されます。

私は何を間違っていますか?

編集:

フィルタリングが機能しています。たとえば、文字「a」を検索し、セル名の 1 つだけに「a」が含まれている場合、1 つのセルのみが表示されます。問題は、「a」が含まれるセルが表示されないことです。一番上のセルのみを表示します。

検索エラー

4

2 に答える 2

1

以下のリンクを参照してください。それはあなたを助けるかもしれません。検索バーの例です。

http://www.appcoda.com/how-to-add-search-bar-uitableview/

于 2013-07-30T05:13:08.757 に答える
0

私はそれを考え出した。問題はcellForRowAtIndexPath:、テーブル ビューの実装方法にありました。

私はこのコードを持っていました:

if (self.tableView == self.searchDisplayController.searchResultsTableView)

self.tableViewjustに置き換えたところtableView、問題なく動作しました。

したがって、正しいコードは次のとおりです。

if (tableView == self.searchDisplayController.searchResultsTableView)

于 2013-07-30T16:51:50.230 に答える