看来我们现在可以在 iOS 15 中onAppear(action:)
或task(priority:action:)
在 iOS 15 中执行相同的任务。但是,我找不到task(priority:action:)
比onAppear(action:)
. 有谁能解释一下吗?
Raj*_*han 28
当视图出现时,对于运行同步函数,task()
和是相同的。onAppear()
主要的区别在于当该视图消失时task(id:priority:_:)
任务将被取消。这意味着当您调用任何网络服务/ API 或添加任何其他任务并返回屏幕时,该任务将自动取消。
任务是异步执行的,允许您在视图显示后立即开始异步工作。
任务的另一个用途是,您可以使用文档task(id:_:)
中提到的
当值更改导致新任务启动或此视图消失时,正在运行的任务将被取消。
下面的示例显示了监听通知以在用户登录时显示。
Text(status ?? "Signed Out")
.task(id: server) {
let sequence = NotificationCenter.default.notifications(
of: .didChangeStatus, on: server)
for try await notification in sequence {
status = notification.userInfo["status"] as? String
}
}
Run Code Online (Sandbox Code Playgroud)
您可以从这篇文章中阅读更多内容。
归档时间: |
|
查看次数: |
8689 次 |
最近记录: |