神奇的记录只保存内存

Posted

技术标签:

【中文标题】神奇的记录只保存内存【英文标题】:Magical record save memory only 【发布时间】:2015-01-14 10:27:22 【问题描述】:

我有这样的代码:

Person *person = [Person MR_findFirstByAttribute:@"FirstName"
                                   withValue:@"Forrest"];
NSLog("Person:%@",person);// age = 20
person.age = 25;
NSLog("Person:%@",[Person MR_findFirstByAttribute:@"FirstName"
                                   withValue:@"Forrest"]);// age = 25

我看到当我设置persion = 25MagicalRecord 时也将它保存到存储中。有时我只想保存person 而不是保存到PersistentStore。我该怎么做?谢谢

【问题讨论】:

你试过复制对象吗? 谢谢。但如何?抱歉,我是核心数据的新手。 只要您的持久存储不是内存存储,您就会将所有创建的对象持久保存在磁盘上。您可以在使用完毕后删除不想存储的对象 【参考方案1】:

设置person.age 不会将新值保存到持久存储中。仅当您保存存在person 对象的NSManagedObjectContext 时才保存该值(您可能使用Magical Record save 方法之一来执行此操作)。您可以在保存上下文之前丢弃在 person 对象中所做的更改,因此它们不会被保存到持久存储中:

[person.managedObjectContext refreshObject:person mergeChanges:NO]

【讨论】:

以上是关于神奇的记录只保存内存的主要内容,如果未能解决你的问题,请参考以下文章

神奇的记录 - 上下文(不保存)

神奇的记录 NSFetchedResultsController NSManagedObject 更改保存不工作

保存一对多实体时出现神奇记录异常

自定义验证期间神奇记录核心数据中的上下文保存问题

UI 冻结与神奇的记录

ios应用程序在神奇记录中的findall API崩溃