实例方法
task(priority:
task(priority:_:)
在此视图出现之前添加要执行的异步任务。
声明
func task(
priority: TaskPriority = .userInitiated,
_ action: @escaping () async -> Void
) -> some View
返回值
在视图出现之前异步运行指定操作的视图。
参数
priority
创建异步任务时使用的任务优先级。默认优先级为
userInitiated
action
SwiftUI 在视图出现之前作为异步任务调用的闭包。 SwiftUI 将在视图消失后的某个时间点自动取消任务,然后操作完成。
详述
使用此修饰符来执行一个生命周期与修改后的视图相匹配的异步任务。如果任务在SwiftUI 删除视图或视图更改身份之前未完成,SwiftUI 将取消任务。
在任务中使用await
关键字等待异步调用完成,或等待
实例的值。例如,您可以修改 AsyncSequence
Text
视图以启动从远程资源加载内容的任务:
let url = URL(string: "https://example.com")!
@State private var message = "Loading..."
var body: some View {
Text(message)
.task {
do {
var receivedLines = [String]()
for try await line in url.lines {
receivedLines.append(line)
message = "Received \(receivedLines.count) lines"
}
} catch {
message = "Failed to load"
}
}
}
此示例使用
方法将存储在指定lines
的内容作为异步字符串序列获取。当每个新行到达时,URL
for
- await
- in
循环的主体将行存储在字符串数组中,并更新文本视图的内容以报告最新的行数。
可用版本
iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+
相关用法
- Swift Optional task(id:priority:_:)用法及代码示例
- Swift Optional tabItem(_:)用法及代码示例
- Swift Optional tag(_:)用法及代码示例
- Swift Optional textSelection(_:)用法及代码示例
- Swift Optional toolbar(id:content:)用法及代码示例
- Swift Optional tint(_:)用法及代码示例
- Swift Optional toolbar(content:)用法及代码示例
- Swift Optional textContentType(_:)用法及代码示例
- Swift Optional touchBarItemPresence(_:)用法及代码示例
- Swift Optional touchBar(_:)用法及代码示例
- Swift Optional touchBar(content:)用法及代码示例
- Swift Optional toggleStyle(_:)用法及代码示例
- Swift Optional transaction(_:)用法及代码示例
- Swift Optional textInputAutocapitalization(_:)用法及代码示例
- Swift Optional touchBarCustomizationLabel(_:)用法及代码示例
- Swift Optional truncationMode(_:)用法及代码示例
- Swift Optional transformEffect(_:)用法及代码示例
- Swift Optional touchBarItemPrincipal(_:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional task(priority:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。