SwiftData хранит объект без вставкиIOS

Программируем под IOS
Anonymous
SwiftData хранит объект без вставки

Сообщение Anonymous »

Когда я создаю экземпляр модели и устанавливаю связь с постоянным объектом, модель сохраняется в контейнере без вызова вставки.
Дано

Код: Выделить всё

@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
это просто

Код: Выделить всё

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

Вернуться в «IOS»