Я работаю со Swiftdata и Swiftui, и мне неясно, если бы хорошо иметь @modelactor, непосредственно заполняющий представление Swiftui. Например, при необходимости объединять ручные результаты лаборатории и клинические результаты HealthKit. Результаты клинической лаборатории-это асинхронная операция: < /p>
@ModelActor
actor LabResultsManager {
func fetchLabResultsWithHealthKit() async throws -> [LabResultDto] {
let manualEntries = try modelContext.fetch(FetchDescriptor())
let clinicalLabs = (try? await HealthKitService.getLabResults()) ?? []
return (manualEntries + clinicalLabs).sorted {
$0.date > $1.date
}.map { LabResultDto(from: $0) }
}
}
struct ContentView: View {
@State private var labResults: [LabResultDto] = []
var body: some View {
List(labResults, id: \.id) { result in
VStack(alignment: .leading) {
Text(result.testName)
Text(result.date, style: .date)
}
}
.task {
do {
let labManager = LabResultsManager()
labResults = try await labManager.fetchLabResultsWithHealthKit()
} catch {
// Handle error
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ate-a-view