Код: Выделить всё
import SwiftData
@Model
class TerritoryGroup {
var name: String?
var territories: [Territory]?
init(name: String) {
self.name = name
}
}
@Model
class Territory {
var name: String?
var territoryGroup: TerritoryGroup?
init(name: String) {
self.name = name
}
}
< /code>
Простой и не сложный. В Cloudkit у меня 20 моделей, а территория и территория - еще несколько свойств, сохраненных в Cloudkit. Я не знаю, имеет ли это значение, но я просто наметил два из них, чтобы проверить, как это работает. Я почти уверен в магазине Cloudkit, есть один объект территории и 9 Territory
Код: Выделить всё
import SwiftData
import SwiftUI
@main
struct FieldService: App {
var sharedModelContainer: ModelContainer = {
let schema = Schema([
TerritoryGroup.self,
Territory.self,
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()
@UIApplicationDelegateAdaptor(ApplicationDelegate.self) var viewappDelegate
var body: some Scene {
WindowGroup {
StartView()
}
.modelContainer(sharedModelContainer)
}
}
< /code>
Как отобразить это в моем приложении? < /p>
import CoreLocation
import SwiftUI
struct StartView: View {
@Environment(\.modelContext) private var modelContext
@Query private var territoryGroups: [TerritoryGroup]
@Query private var territories: [Territory]
var body: some View {
List{
ForEach (territoryGroups) { item in
Text(item.name ?? "abc")
}
ForEach (territories) { item in
Text(item.name ?? "def")
}
}
}
}
Так просто отображает значения дефолта. Не настоящие. Почему? Я не уверен, нужно ли это больше, но это так. Конечно со всеми 20 объектами
Подробнее здесь: https://stackoverflow.com/questions/795 ... tched-from