問題タブ [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.

0 投票する
5 に答える
1279 参照

iphone - search NSArray には NSDictionary が含まれており、「時間効率」があります

すでに多くの質問が寄せられていることは承知していますが、キャッチするためにもう 1 つ質問を投げかけています。配列には膨大な量 (数千のレコード) のデータが含まれてNSDictionaryいます。辞書のキー内で検索を配列に実行しようとしています。

UITextField - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; データソース方式で検索を行っているのですが、

私の検索要件は文字列全体であり、

文字列の例、

aaa、abeb、abcd、abbec のような文字列

検索の流れ、

aすべての文字列を返す場合、

aaaaa のみを返す場合、

のようにab返されたabeb, abcd, abbec場合、

重要、そのcd場合のみ abcd を返す場合

これらの方法で試してみましたが、

NSPredicate の使用

別の方法 -反復を通じて、

どちらの方法も問題なく機能し、期待どおりの結果が得られましたが、シミュレーターでのみ! デバイスで同じことをテストすると、検索の拡張に応じて約 1 / 2 / 3 秒かかります。最初に入力すると、a3 秒かかり、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 秒。

どんな提案や助けも大歓迎です!

0 投票する
3 に答える
3189 参照

objective-c - CFArray とは何か、CFArray と NSArray の違い

これは重複した質問かもしれませんが、私は非常に多くのブログやドキュメントを調べましたが、それでも CFArray とは何かわかりません。

パフォーマンスに関しては、どれが最適で、いつ、どのような状況で使用するかです。このトピックに光を投げてください。