0

ドキュメントが言及: バッチモードでhttps://developer.apple.com/reference/corespotlight/cssearchableindex?language=objcCoreSpotlightデフォルトのインデックススレッドセーフ

、クライアントは 複数のスレッドからの同時アクセスから プライベートCSSearchableIndexインスタンスを保護するための責任を取ります。索引インスタンスへの同時コールには、 の未定義の結果があります。

しかし、NONバッチモードで何が起こるかについては言及していません。つまり、デフォルトの検索可能なインデックスを使用しているとしましょう。また、インデックスにはほんのわずかの時間(1〜2秒)かかります。私は

indexSearchableItems:completionHandler: 

を呼び出し、このインデックスがまだ進行中である間、私は再び

indexSearchableItems:completionHandler: 

を呼び出すことができますか?または、デフォルトのSearchable Indexインスタンスを自分自身から同時にアクセスすることはできませんか?

答えて

1

プライベートCSSearchableIndexを作成する場合は、ドキュメントごとに複数のスレッドアクセスから保護する責任があります。デフォルトのCSSearchableIndexはスレッドセーフです。私はindexSearchableItems:completionHandler:を複数のバックグラウンドスレッドからのdefaultSearchableIndexで使用しており、競合状態やクラッシュに直面していませんでした。

関連する問題