0

UiSearchBar実装があり、タイトル用と説明用のTableView2つのがあります。NSArrayタイトルの配列を検索すると、正しい検索が返されますが、検索に含まれる行をクリックすると、最初の行をクリックすると「行0」が表示されます。私の質問は、検索がユーザー検索に基づいてタイトルを再配置するときに、description配列がタイトルと同じ行に対応するように、2つの配列を接続する方法です。

4

3 に答える 3

0

単に2つNSArrayのを使用せず、カスタムNSObjectオブジェクトで1つだけを使用します。

@interface SomeObject : NSObject {
    NSString *_title;
    NSString *_description;
}

- (BOOL)matchesKeywords:(NSString *)keywords;

@end

次に、Obj-Cのように、すべての情報を1つのクラスに保存します。オブジェクト自体が特定のキーワードに一致するかどうかを認識しているため、検索を簡単に実行できます。したがって、変更SomeObjectする場合は、クラス自体でそれらの変更を簡単に管理できます。

于 2010-05-04T11:01:45.263 に答える
0

私は一度この問題を抱えていたので、簡単な修正のためにこれを行いました:

完全な辞書とフィルタリングされた辞書を切り替える場合は、上記の BOOL をそれぞれ NO と YES に設定するだけです。

次に、didSelectRowAtIndexPath で「if」ステートメントを使用して、usingFilterArray の状態を確認します。残りはかなり簡単なはずです。(まだ助けが必要な場合はお知らせください) フィルターの後に検索を実行するときの 1 つのこと 辞書が水和されている 検索をキャンセルした場合、これを必ず実行する必要があります。そうしないと、水和された辞書が実行されないため、アプリがクラッシュします。その中にオブジェクトがあります。(フィルタリングされた辞書を消去したと思います)

- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
        [self.tableView reloadData];
 } 

これは簡単な修正です。

于 2011-04-19T11:12:29.517 に答える
0

2 つの配列を 1 つにマージしましたが、セルがタイトルと説明の両方を保持しているため、tableviewcell の読み込みが大幅に遅くなりました

于 2010-05-05T10:58:30.590 に答える