實例方法
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:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。