Как временно использовать объекты 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?

0 ответов

Другие вопросы по тегам