2012-06-26 2 views
0

Я использую NSMetadataQuery, чтобы определить, существует ли документ в контейнере iCloud моего приложения, даже если файл не был загружен локально.Проверка существования документа на контейнере iCloud

Может ли NSFileCoordinator с NSFilePresenter сделать то же самое? Проверка наличия файла, хотя он по-прежнему недоступен локально?

Обновление: Я использовал некоторое время NSMetadataQuery, чтобы определить, существует ли файл в моем контейнере для вездесущности. Но, по крайней мере, тестирование на 10.8.2, оно не всегда работает. У меня появилось много ложных негативов для существования файлов.

Я знаю, что другие используют координаторы файла belive. У кого-нибудь есть мнение по этому поводу или даже лучше указать мне пример того, как их использовать?

ответ

2

послав сообщение coordinateReadingItemAtURL:options:error:byAccessor: метода NSFileCoordinator «s и делать то, что вы хотите в byAccessor блоке с его urlToUse (и проверки результатов ошибок, посмотрев на ошибки) должен работать, если у вас уже есть действующий URL для элемента в ICloud вы, что вы пытаетесь запросить использование NSMetadataQuery.

и вы можете создать NSFileCoordinator с помощью initWithPresenter:nil, и он будет работать для всех файловекторов.

так что это похоже на то, действительно ли вы уже знаете URL-адрес объекта, который вы ищете. использование NSMetadataQuery, очевидно, будет более удобным с точки зрения создания NSPredicate, что даст вам возможность перечислить элементы в контейнере iCloud ubiquity, когда вы еще не знаете их URL-адреса.

(я не могу объяснить ваши ложные негативы, хотя я был бы склонен проверить созданный вами файл NSPredicate, или я посмотрю, есть ли у вас настроенные оповещения для обоих NSMetadataQueryDidUpdateNotification & NSMetadataQueryDidFinishGatheringNotification и что вы не отменили их.)

Смежные вопросы