問題タブ [cfarraybsearchvalues]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - search NSArray には NSDictionary が含まれており、「時間効率」があります
すでに多くの質問が寄せられていることは承知していますが、キャッチするためにもう 1 つ質問を投げかけています。配列には膨大な量 (数千のレコード) のデータが含まれてNSDictionary
います。辞書のキー内で検索を配列に実行しようとしています。
UITextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
データソース方式で検索を行っているのですが、
私の検索要件は文字列全体であり、
文字列の例、
aaa、abeb、abcd、abbec のような文字列
検索の流れ、
a
すべての文字列を返す場合、
aa
aaa のみを返す場合、
のようにab
返されたabeb, abcd, abbec
場合、
重要、そのcd
場合のみ abcd を返す場合
これらの方法で試してみましたが、
NSPredicate の使用
別の方法 -反復を通じて、
どちらの方法も問題なく機能し、期待どおりの結果が得られましたが、シミュレーターでのみ! デバイスで同じことをテストすると、検索の拡張に応じて約 1 / 2 / 3 秒かかります。最初に入力すると、a
3 秒かかり、aa
約 2 秒かかります。IT LOOKS CLUMSY ON DEVICE, ANY PRESSED KEY WILL BE REMAIN HIGHLIGHTED UNTIL SEARCH NOT DONE
.
私が使用しているのと同じ方法または他の代替手段を使用して、さらに高速な検索を実行できる方法はありますか?
更新 1
CFArrayBSearchValuesも試してみました 検索文字列のインデックスのみを返しますが、一致するすべての文字列を返すものが必要です。
更新 2
Alladinian
コメントによると、バックグラウンド スレッドで検索操作を実行しました。はい、UI をロックしていませんが、それでも検索が遅すぎます。私が行っているのは、0.25 秒程度の遅延でセレクターを実行し、以前のセレクター呼び出しもキャンセルすることです。 、バックグラウンドで検索を実行し、メインスレッドでテーブルをリロードします。そのように動作します。少し遅れて文字を入力するとうまく機能しますが、単語全体を一度に入力すると、押された文字に従ってテーブルをロード/更新し、最後に実際の出力が表示されます.3-かかります実際のコンテンツを表示するのに 4 秒。
どんな提案や助けも大歓迎です!
objective-c - CFArray とは何か、CFArray と NSArray の違い
これは重複した質問かもしれませんが、私は非常に多くのブログやドキュメントを調べましたが、それでも CFArray とは何かわかりません。
パフォーマンスに関しては、どれが最適で、いつ、どのような状況で使用するかです。このトピックに光を投げてください。