Ошибки файла-провайдера iOS 11 вне квоты
Я пытаюсь, но не могу использовать код ошибки NSFileProviderErrorInsufficientQuota.
Установка uploadingError для элементов в что-то вроде:
let userInfo: [String:Any] = [NSURLErrorKey: NSURL(string: "https://my.domain.net/purchase-quota/")!,
NSLocalizedDescriptionKey: "Out of quota!"]
return NSError(domain: NSFileProviderError.errorDomain,
code: NSFileProviderError.Code.insufficientQuota.rawValue,
userInfo: userInfo)
В приложении "Файлы" есть небольшое "Ошибка загрузки" под именем файла, но у пользователя нет возможности узнать что-либо еще.
Просматривая видео " Улучшение провайдера файлов" с WWDC 2017, докладчик говорит, что:
В случае постоянной ошибки, например, когда у пользователя нет квоты, вам нужно сказать ему: "Эй, у вас нет квоты". Вы должны пойти и купить больше квоты на нашей веб-странице. И в этой ситуации, в основном, вы даете нам ошибку, которая предлагает вариант восстановления.
Это намекает на использование recoveryAttempter на NSError, и я попробовал что-то вроде:
let userInfo: [String:Any] = [NSRecoveryAttempterErrorKey: TestErrorRecovery(),
NSLocalizedRecoveryOptionsErrorKey: ["Retry", "Cancel"]]
Это приводит к тому, что приложение "Файлы" в журнале жалуется на то, что Exception: decodeObjectForKey: класс "Provider.TestErrorRecovery" не загружен или не существует
вероятно, потому что NSError передается от одного процесса другому.
Кажется, инфраструктура File Provider имеет особую поддержку для пользователей вне квоты, но я не могу найти какую-либо документацию или примеры, показывающие, как именно это можно использовать.
Кто-нибудь знает, как на самом деле сделать что-то разумное, когда у пользователя нет квоты или может дать ссылку на примеры?