2012-06-26 32 views
0

我正在使用NSMetadataQuery來檢測文檔是否存在於我的應用程序iCloud容器中,即使該文件尚未下載到本地。在iCloud容器上驗證文檔是否存在

帶NSFilePresenter的NSFileCoordinator可以做同樣的事嗎?驗證文件是否存在,即使它在本地仍然不可用?

更新: 我一直在使用NSMetadataQuery來檢測文件是否存在於我的無處不在容器中。但至少在10.8.2測試,它並不總是工作。我一直在爲文件的存在獲得許多錯誤的否定。

我知道其他人一直在使用我相信文件協調員。 有沒有人對此有任何意見,或者甚至更好地指出我如何使用它們的例子?

回答

2

將消息發送到NSFileCoordinatorcoordinateReadingItemAtURL:options:error:byAccessor:方法,做你想做的事,在byAccessor塊,其urlToUse(並通過查看錯誤檢查錯誤結果),如果你已經有了一個有效的URL到iCloud中的項目應該工作你一直試圖使用NSMetadataQuery進行查詢。

並且您可以使用initWithPresenter:nil創建NSFileCoordinator,它適用於所有文件演示者。

所以它似乎是你是否已經知道你正在搜索的項目的URL的問題。使用NSMetadataQuery在創建NSPredicate方面顯然會更方便,當您不知道他們的URL時,它將返回您的iCloud無處不在容器中的項目的枚舉。 (我不禁要解釋你的錯誤否定,儘管我傾向於檢查你正在爲你查詢的文件創建NSPredicate,或者我想看看你是否設置了通知對於NSMetadataQueryDidUpdateNotification & NSMetadataQueryDidFinishGatheringNotification並且您還沒有取消它們。)