CoreStore 在上下文中创建对象而不保存到数据库

马特罗索夫亚历山大

我想解决下一个问题:

我想NSManagedObject在上下文中使用一些并在运行时更改一些属性,但不告诉 SQLite 任何更改。

NSManagedObject当我点击保存按钮或类似按钮时,我只想保存到数据库。

正如我从源代码演示中发现的那样,我们需要为此目的使用 beginUnsafe(也许我错了)

func unstoredWorkout() -> WorkoutEntity {

    let transaction = CoreStore.beginUnsafe()
    let workout = transaction.create(Into<WorkoutEntity>())

    return workout
}

let workout = unstoredWorkout()
workout.muscles = []

现在,当我尝试更新workout.muscles = []应用程序时崩溃并出现错误:

error: Mutating a managed object 0x600003f68b60 <x-coredata://C00A3E74-AC3F-47FD-B656-CA0ECA02832F/WorkoutEntity/tC3921DAE-BA43-45CB-8271-079CC0E4821D82> (0x600001c2da90) after it has been removed from its context.

我的问题是如何在不保存对象的情况下创建对象,以及如何在修改某些属性时保存对象并避免这种崩溃。

马丁

崩溃的原因是您的事务只存在于您的 unstoredWorkout() 方法中,因此它调用 deinit,这会重置上下文(并删除所有未保存的对象)。您必须在某处保留该不安全事务以保持您的对象处于活动状态 - 例如在最终将保存更改的视图控制器中。

但是,如果您真的想这样做,我宁愿鼓励您考虑一下。您可能会遇到各种上下文或其他处于活动状态的异步事务的其他同步问题,例如涉及 API 调用时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CoreStore 创建对象并成功返回

来自分类Dev

数据库上下文中缺少GetTable <TEntity>()

来自分类Dev

CoreStore 重新获取谓词 NSFetchRequest 问题

来自分类Dev

核心数据NSBatchDeleteRequest似乎将对象留在上下文中

来自分类Dev

保存后,在子上下文中创建的新对象在父上下文中不存在

来自分类Dev

为NSManagedObject创建实例,但不将其保存到上下文中

来自分类Dev

在上下文中解析类型

来自分类Dev

这在上下文中无效

来自分类Dev

在上下文中评估变量

来自分类Dev

OrientDB在上下文错误中找不到数据库实例?

来自分类Dev

检索数据服务器端并使用Next.js保存在上下文中

来自分类Dev

在EF数据库上下文中两次使用相同的c#模型

来自分类Dev

Spring MVC在应用程序上下文中刷新数据库bean

来自分类Dev

从我的数据库上下文中基于ID删除用户

来自分类Dev

Spring MVC在应用程序上下文中刷新数据库Bean

来自分类Dev

在EF数据库上下文中两次使用相同的c#模型

来自分类Dev

事务如何在读取数据库的上下文中工作?

来自分类Dev

将父对象保存到上下文中时,将子对象添加到表中

来自分类Dev

实体框架不会将数据库上下文中仍然存在的对象与从不同类引用的同一对象相关联

来自分类Dev

@Cacheevict有时在上下文中缺少对象(EL1011E)

来自分类Dev

@Cacheevict有时在上下文中缺少对象(EL1011E)

来自分类Dev

通过SpringEl在上下文中创建和设置地图

来自分类Dev

如何使用factory_girl在上下文中创建模型?

来自分类Dev

保存更改之前,如何修改数据库上下文实体的当前值

来自分类Dev

Linqpad-保存更改无需Linq To Entiies数据库上下文即可工作

来自分类Dev

gdb:不在上下文中的结构的大小?

来自分类Dev

在上下文中不使用Where语句

来自分类Dev

ReactJs在上下文中添加多个reducer

来自分类Dev

在上下文中更改python的打印行为

Related 相关文章

  1. 1

    CoreStore 创建对象并成功返回

  2. 2

    数据库上下文中缺少GetTable <TEntity>()

  3. 3

    CoreStore 重新获取谓词 NSFetchRequest 问题

  4. 4

    核心数据NSBatchDeleteRequest似乎将对象留在上下文中

  5. 5

    保存后,在子上下文中创建的新对象在父上下文中不存在

  6. 6

    为NSManagedObject创建实例,但不将其保存到上下文中

  7. 7

    在上下文中解析类型

  8. 8

    这在上下文中无效

  9. 9

    在上下文中评估变量

  10. 10

    OrientDB在上下文错误中找不到数据库实例?

  11. 11

    检索数据服务器端并使用Next.js保存在上下文中

  12. 12

    在EF数据库上下文中两次使用相同的c#模型

  13. 13

    Spring MVC在应用程序上下文中刷新数据库bean

  14. 14

    从我的数据库上下文中基于ID删除用户

  15. 15

    Spring MVC在应用程序上下文中刷新数据库Bean

  16. 16

    在EF数据库上下文中两次使用相同的c#模型

  17. 17

    事务如何在读取数据库的上下文中工作?

  18. 18

    将父对象保存到上下文中时,将子对象添加到表中

  19. 19

    实体框架不会将数据库上下文中仍然存在的对象与从不同类引用的同一对象相关联

  20. 20

    @Cacheevict有时在上下文中缺少对象(EL1011E)

  21. 21

    @Cacheevict有时在上下文中缺少对象(EL1011E)

  22. 22

    通过SpringEl在上下文中创建和设置地图

  23. 23

    如何使用factory_girl在上下文中创建模型?

  24. 24

    保存更改之前,如何修改数据库上下文实体的当前值

  25. 25

    Linqpad-保存更改无需Linq To Entiies数据库上下文即可工作

  26. 26

    gdb:不在上下文中的结构的大小?

  27. 27

    在上下文中不使用Where语句

  28. 28

    ReactJs在上下文中添加多个reducer

  29. 29

    在上下文中更改python的打印行为

热门标签

归档