Ошибки файла-провайдера iOS 11 вне квоты - PullRequest
0 голосов
/ 08 февраля 2019

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

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

...