为啥 MR_save 不起作用但 MR_saveNestedContexts 起作用?

Posted

技术标签:

【中文标题】为啥 MR_save 不起作用但 MR_saveNestedContexts 起作用?【英文标题】:Why does MR_save not work but MR_saveNestedContexts does?为什么 MR_save 不起作用但 MR_saveNestedContexts 起作用? 【发布时间】:2012-11-15 10:37:59 【问题描述】:

我正在使用 MagicalRecord 来保存一个名为“Me”的托管对象。这是我正在尝试的两种方法(第一种方法不保存数据,但第二种方法可以):

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
[Me MR_createInContext:localContext];
[localContext MR_save];

上面的方法不会持久化数据,但下面的方法会:

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
[Me MR_createInContext:localContext];
[localContext MR_saveNestedContexts];

为什么 MR_save 不起作用?

【问题讨论】:

请参阅"Regarding MagicalRecord, what is the difference between the methods MR_saveNestedContexts and MR_save"。两种方法之间有很好的描述。 那么每次存储新实体时调用 MR_save 和 MR_saveNestedContexts 是否重要? 从 2.0.8 版开始,如果您想确保将嵌套上下文持久保存到商店,请使用 MR_saveNestedContexts。如果您想保存 ONLY ONE 父母,请使用MR_saveIF 父级恰好是根/默认上下文,MR_saveNestedContextsMR_save 做同样的事情,就是坚持存储。 如果您将您的 cmets 添加到答案中,我会给您绿色检查。 【参考方案1】:

来自cmets:

请参阅"Regarding MagicalRecord, what is the difference between the methods MR_saveNestedContexts and MR_save"。这两种方法之间有很好的描述。

从 2.0.8 版开始,如果您想确保将嵌套上下文持久保存到存储中,请使用 MR_saveNestedContexts。如果您想保存 ONLY ONE 父母,请使用MR_saveIF parent 恰好是根/默认上下文,MR_saveNestedContextsMR_save 做同样的事情,就是坚持存储。

【讨论】:

以上是关于为啥 MR_save 不起作用但 MR_saveNestedContexts 起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为啥?

Javascript:为啥有时 alert() 不起作用但 console.log() 起作用?

为啥jquery plusslider在google chrome中不起作用但在firefox中起作用

在 HttpURLConnection 为啥 JSONObject as Params 不起作用但 String as Params 起作用

为啥 subscribe() 不起作用但模板中的异步可以?

Ruby require 'file' 不起作用,但 require './file' 可以。为啥?