Как временно использовать объекты CoreData без необходимости вставлять их в контекст?
Контекст
Я работаю над функцией, которая позволяет пользователям добавлять в файлы . Очевидно, что они вставлены и сохранены в файле . Кроме того, я также хочу предоставить пользователю различные предопределенные файлы . Однако мне не нравится идея заполнять эти предопределенные в первый разApp Launch
, так как это действительно подвержено ошибкам, особенно при использованииCloudKit
. Итак, моя идея состояла в том, чтобы создатьList
предопределенных без вставки их в , что сделало бы их временными, но их можно было бы использовать так же, как настоящие. Однако, насколько я понимаю, созданиеNSManagedObjects
безContext
действительно не работает.
Код
let predefinedComponents: [Component] {
var components: [Component] = []
for name in names {
let component = Component() // This was my idea of creating a temporary NSManagedObject without inserting it into a Context.
component.name = name
components.append(component)
}
return components
}
struct ComponentsView: View {
@FetchRequest(sortDescriptors: [SortDescriptor(\.name)]) private var components: FetchedResults<Component>
var body: some View {
ForEach(allComponents) { component in
ComponentRow(component: component)
}
}
private var allComponents: [Component] {
var allComponents: [Component] = predefinedComponents
for component in components {
allComponents.append(component)
}
return allComponents
}
}
struct ComponentRow: View {
@ObservedObject var component: Component
var body: some View {
Text(component.name)
}
}
Вопрос
Как я могу достичь своей цели, описанной выше, имея возможность работать с предопределеннымиComponents
без необходимости заполнять их вCoreData
во-первыхAppLaunch
?