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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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