Дано
Код: Выделить всё
@Model
final class Order {
@Attribute(.unique)
var orderId: String
var items: [Item] = []
init(orderId: String) {
self.orderId = orderId
}
}
@Model
final class Item {
@Attribute(.unique)
var timestamp: Date
var order: Order?
init(timestamp: Date) {
self.timestamp = timestamp
}
}
Код: Выделить всё
let item = Item(timestamp: Date())
// here the order is not stored
item.order = sharedModelContainer.mainContext.anOrder
// here after setting the relationship to an existing order the item is stored
Код: Выделить всё
anOrderКод: Выделить всё
extension ModelContext {
var anOrder: Order? {
let desc = FetchDescriptor(predicate: #Predicate { order in true })
let orders = try! fetch(desc)
return orders.first
}
}
Отключение автосохранения не является решением. У меня вопрос, почему оно сохраняется без вставки.
Так и должно быть? Желательно?
Подробнее здесь: https://stackoverflow.com/questions/772 ... out-insert
Мобильная версия