FileProviderExtension workingSet перечислитель не вызывал
У меня проблема с рабочим перечислителем наборов (вкладка "Последние") в приложении "Файлы". Я реализую рабочий перечислитель для папок, он запускает enumerateItems(для метода наблюдателя, когда я перехожу к папке в пользовательском интерфейсе, и все работает нормально. И у меня тоже есть другой перечислитель для рабочего набора, но он ничего не создал и не перечислил.
override func enumerator(for containerItemIdentifier: NSFileProviderItemIdentifier) throws -> NSFileProviderEnumerator {
let maybeEnumerator: NSFileProviderEnumerator?
if (containerItemIdentifier == NSFileProviderItemIdentifier.rootContainer) {
let directory = repository.directory(for: containerItemIdentifier)!
maybeEnumerator = FileProviderFolderEnumerator()
} else if (containerItemIdentifier == NSFileProviderItemIdentifier.workingSet) {
maybeEnumerator = FileProviderWorkingSetEnumerator() // not called
} else {
_ = repository.item(for: containerItemIdentifier)
if repository.isDirectory(at: containerItemIdentifier) {
let directory = repository.directory(for: containerItemIdentifier)!
maybeEnumerator = FileProviderFolderEnumerator() // works fine
} else {
maybeEnumerator = FileProviderItemEnumerator()
}
}
guard let enumerator = maybeEnumerator else {
throw NSError(domain: NSCocoaErrorDomain, code: NSFeatureUnsupportedError, userInfo:[:])
}
return enumerator
}
Я пытаюсь вызвать перечислитель рабочего набора в методе startProvidingItem, используя сигнал, но он не работает.
override func startProvidingItem(at url: URL, completionHandler: @escaping ((_ error: Error?) -> Void)) {
loadItem {
//when done with loading
NSFileProviderManager.default.signalEnumerator(
for: NSFileProviderItemIdentifier.workingSet,
completionHandler: { error in
if let err = error { print(err) }
}
}
}
FileProviderWorkingSetEnumerator инициализируется автоматически при открытии вкладки "Последние" в приложении "Файлы"? Должен ли я позвонить как-то прямо из FileExtension?
Спасибо!
0 ответов
Перечислитель рабочего набора не работает так, как вы думаете. Расширение провайдера файлов будет перечислять рабочий набор в фоновом режиме, даже до того, как вы откроете приложение Файлы. Вот почему вам необходимо подготовить данные рабочего набора в автономном режиме. Документ WWDC 2017 может помочь.