swift - 在 iOS 上使用带有不良网络的 AWS Amplify API
问题描述
我使用 AWS Amplify API 和 graphql 将云服务添加到我的 ios 应用程序中。这是开箱即用的,但是在测试时,如果应用程序的用户断开互联网连接,我会遇到麻烦。
测试时,我每秒运行一次下面的代码。
func awscreateTodo() {
let todo = Todo(name: "my first todo", description: "todo description")
Amplify.API.mutate(request: .create(todo)) { event in
switch event {
case .success(let result):
switch result {
case .success(let todo):
print("Successfully created the todo: \(todo)")
case .failure(let graphQLError):
print("Failed to create graphql \(graphQLError)")
}
case .failure(let apiError):
print("Failed to create a todo", apiError)
}
}
}
然后我断开设备与互联网的连接。一段时间后它会抛出以下错误。
Failed to create a todo APIError: The Internet connection appears to be offline.
Recovery suggestion: The Internet connection appears to be offline.
Caused by:
Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=8, NSUnderlyingError=0x6000002426a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3B9BEC23-4B95-4C81-B56F-40C421142923>
我应该如何处理这个问题?有没有办法可以重新连接服务甚至捕获错误并处理它?如果我重新打开网络,它没有帮助。它不会重新启动。
解决方案
推荐阅读
- machine-learning - 如何匹配来自不同电子商务来源的标题的产品?提取产品属性
- c++ - 使用一个全局变量来初始化不同编译单元中的其他全局变量
- javascript - 用onclick事件调用php函数?
- ruby-on-rails - 如何使用 Simple Form Gem 从 Rails 应用程序中的复选框表单输入字段生成数组?
- c# - Linq 包含对字符串的检查有误检测
- kubernetes - 访问 IBM Cloud 上的 Kube 仪表板
- jdbc - 如何使用 JDBC 连接 apache jean fuseki 远程数据库
- java - 在将刺痛从一个代码传递到另一个代码时,我遇到了错误?
- arm - 如何在 ARM64 CPU (aarch64) 上安装 bison 2.4.1?
- ios - 将 Array 传递给 XLPagerTabBar 委托函数以打开 VC