Ошибки файла-провайдера 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 имеет особую поддержку для пользователей вне квоты, но я не могу найти какую-либо документацию или примеры, показывающие, как именно это можно использовать.

Кто-нибудь знает, как на самом деле сделать что-то разумное, когда у пользователя нет квоты или может дать ссылку на примеры?

0 ответов

Другие вопросы по тегам