К сожалению, локализованное описание не дает содержательного описания. Проблема с обработкой моего собственного сообщения об ошибке состоит в том, что существует 26 кодов ошибок. И если я поддерживаю 5 языков, то это 26 x 5 = 130 сообщений об ошибках. К сожалению, они имеют ошибку в описании отладки, но с технической информацией. Я думаю, что это больше ошибка, было интересно, если было решение

Я хотел бы отобразить столкнулся с пользователем в приложении в качестве предупреждения.CKErrorПоэтому я хотел бы извлечь строку из ошибки, которая может быть отображена пользователю.Примечание:

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

Код:

Ниже приведены попытки, которые я сделал:

Вопросов:

po error  
<CKError 0x1c464cea0: "Network Unavailable" (3/NSURLErrorDomain:-1009); "The Internet connection appears to be offline.">  

po error.localizedDescription  
"The operation couldn’t be completed. (CKErrorDomain error 3.)"  

po (error as! CKError).errorUserInfo  
▿ 2 elements  
  ▿ 0 : 2 elements  
    - key : "NSUnderlyingError"  
    - value : Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={NSErrorFailingURLStringKey=https:/  
  ▿ 1 : 2 elements  
    - key : "NSDebugDescription"  
    - value : NSURLErrorDomain: -1009  



po (error as? NSError)?.localizedFailureReason  
nil  

po (error as? NSError)?.localizedRecoverySuggestion  
nil  

po (error as? NSError)?.localizedRecoveryOptions  
nil  

po (error as? NSError)?.debugDescription  
▿ Optional<String>  
  - some : "<CKError 0x1c064eaf0: \"Network Unavailable\" (3/NSURLErrorDomain:-1009); \"The Internet connection appears to be offline.\">"  
Описание отладки кажется наиболее близким к тому, что я хочу.

Я что-то пропустил ?

Как правильно извлечь строку ошибки, которую я могу отобразить пользователю?Попробуйте (ошибка как! CKError) .localizedDescription

Ответы на вопрос(2)

Ваш ответ на вопрос