【发布时间】:2021-08-05 14:43:50
【问题描述】:
我需要我的应用程序在启动时配置后端,这是这样做的功能:
// Initializes Amplify
final func configureAmplify() async {
do {
// Amplify.Logging.logLevel = .info
let dataStore = AWSDataStorePlugin(modelRegistration: AmplifyModels())
let syncWithCloud = AWSAPIPlugin()
let userAuth = AWSCognitoAuthPlugin()
try Amplify.add(plugin: userAuth)
try Amplify.add(plugin: dataStore)
try Amplify.add(plugin: syncWithCloud)
try Amplify.configure()
print("Amplify initialized")
} catch {
print("Failed to initialize Amplify with \(error)")
}
}
我尝试将它放在 @main init 中,如下所示:
init() async {
await networkController.configureAmplify()
}
但我收到以下错误:
Type 'MyApplicationNameApp' does not conform to protocol 'App'
我尝试在初始化它之后应用建议:
init() {
}
但这似乎很奇怪,所以现在我有 2 个 init。这里发生了什么以及在应用程序启动时初始化多个异步函数的正确方法是什么,例如:
- 以上代码(配置放大)
- 检查用户是否登录
- 设置会话
等
注意:init() async 在上面的示例中永远不会被调用,这是该问题中的另一个问题,那么在应用启动时初始化异步函数的正确方法是什么。
【问题讨论】:
-
不要放在
init中,放在.task中。看看来自 WWDC 的async await视频 -
是的,我现在正在浏览整个视频,他们有很多 @loremipsum
标签: swiftui swiftui-environment