Я относительно новичок в Swift, и у меня возникают проблемы с анализом результата вызова API GraphQL.
Я вижу, что результат в объявлении 'fail ()' имеет тип NSError, и я в основном пытаясь получить к нему доступ, если это «ошибка», а затем получить доступ к ключам NSError. Результат:
failure(Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo={NSUnderlyingError=0x282232700 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x280e54b40 [0x1faa4fcf0]>{length = 16, capacity = 16, bytes = 0x1002005036d7fb9f0000000000000000}, _kCFStreamErrorCodeKey=-4, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://staging.mysite.com/api/, NSErrorFailingURLKey=http://staging.mysite.com/api/v2/, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-4, NSLocalizedDescription=The network connection was lost.})
Я получаю следующую информацию, используя:
print("\(result)")
Результатом является объект типа Result<GraphQLResult<Data>, Error>
. Существуют методы для получения ошибок, но этот результат, по-видимому, не выдается как ошибка GraphQL. Уловка ошибки, которую я использую:
if let firstError = try? result.get().errors?.first {
completion([], [], firstError)
return
}
Она проходит эту проверку, поэтому просто интерпретирует ее как нормальный результат данных. У меня вопрос: как мне разобрать эту информацию?
Я думаю, что мне нужно проверить, не является ли это ошибкой, затем развернуть ее из типа «ошибка», а затем обработать вложенную информацию как объект NSError. , Я не могу использовать «содержит», так как это не строка. Для result
существует метод get()
, который позволяет вам result.get().data
или result.get().error
, но в этом случае ничего не возвращает.
Любая помощь в том, как я могу разобрать эту информацию, будет принята с благодарностью. Спасибо!