0

ファイルがローカルにダウンロードされていない場合でも、アプリケーションの iCloud コンテナーにドキュメントが存在するかどうかを検出するために NSMetadataQuery を使用しています。

NSFilePresenter を持つ NSFileCoordinator は同じことを行うことができますか? ファイルがまだローカルで利用できない場合でも、ファイルが存在することを確認しますか?

更新: ユビキタス コンテナーにファイルが存在するかどうかを検出するために、しばらくの間 NSMetadataQuery を使用してきました。しかし、少なくとも 10.8.2 でテストすると、常に機能するとは限りません。ファイルの存在について多くの偽陰性を取得しています。

他の人が I Belive ファイル コーディネーターを使用していることは知っています。誰かがこれについて意見を持っていますか、またはそれらの使用方法の例を教えてください。

4

1 に答える 1

2

NSFileCoordinatorcoordinateReadingItemAtURL:options:error:byAccessor:メソッドにメッセージを送信し、byAccessorそのブロックで必要なことを実行するurlToUse(およびエラーを見てエラー結果を確認する) ことは、iCloud 内の項目への有効な URL を既に持っている場合に機能するはずです。を使用するためのクエリNSMetadataQuery

NSFileCoordinatorusing を作成するinitWithPresenter:nilと、すべてのファイルプレゼンターで機能します。

つまり、探しているアイテムの URL を知っているかどうかの問題のようです。URL がわからない場合に、iCloud ユビキタス コンテナー内のアイテムの列挙を返す を作成するという点で、を使用するNSMetadataQuery方が明らかに便利です。NSPredicate

(私はあなたの偽陰性を説明するのを手伝うことはできませんが、NSPredicateあなたがクエリしているファイルのためにあなたが作成していることを確認する傾向がありNSMetadataQueryDidUpdateNotificationます.NSMetadataQueryDidFinishGatheringNotificationキャンセルしていません。)

于 2012-09-26T07:09:12.917 に答える