Мои модели данных состоят из двух независимых таблиц и третьей таблицы, которая содержит связи между первыми двумя таблицами (например, третья таблица является связывающей или объединяющей таблицей)
Код: Выделить всё
import SwiftData
@Model
class Object {
#Unique([\.name])
var name: String
var type: Int
init(name: String, type: Int) {
self.name = name
self.type = type
}
}
@Model
class Location {
#Unique([\.location])
var location: String
var value: Int
init(location: String, value: Int) {
self.location = location
self.value = value
}
}
@Model
class ObjAndLoc {
#Unique([\.object, \.location])
var object: Object
var location: Location
init(object: Object, location: Location) {
self.object = object
self.location = location
}
}
Код: Выделить всё
import SwiftUI
import SwiftData
struct DataView: View {
@Environment(\.modelContext) var modelContext
var object: Object
var location: Location
@Query var objAndLoc: [ObjAndLoc]
var body: some View {
Text("Hello, World!")
}
init(object: Object, location: Location) {
self.object = object
self.location = location
let predicate = #Predicate
{
$0.object == self.object && $0.location == self.location
}
_objAndLoc = Query(filter: predicate)
}
}
Невозможно преобразовать значение типа
'PredicateExpressions.Conjunction
Object>,
PredicateExpressions.KeyPath>,
PredicateExpressions.Equal>' для типа результата закрытия 'любой
StandardPredicateExpression'
Очевидно, я что-то упускаю. Как настроить предикат Query для выбора нужного объекта и местоположения?
Подробнее здесь: https://stackoverflow.com/questions/798 ... iftui-view
Мобильная версия