问题标签 [managedobjectcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5393 浏览

ios - 在 iOS 中传递上下文以将 Core Data 与 Storyboard 一起使用

我在将上下文从应用程序委托传递到视图控制器时遇到了一些问题。我在网上找到了很多教程,都建议使用该didFinishLaunchingWithOptions方法创建视图控制器,设置上下文属性并推送它。我的问题是我想使用情节提要,并且视图控制器是在其中创建和推送的,而不是在应用程序委托中。

我尝试在我的应用程序委托中执行此操作:

这在我的视图控制器中:

当我调试时,我可以看到在应用程序委托中,上下文已正确填充,并且视图控制器中的属性也可以。但是当我的saveContact方法被调用时,上下文是空的。

您对此有什么建议吗?如何使用情节提要将上下文传递给视图控制器?

0 投票
3 回答
998 浏览

iphone - NSManagedObjectContext 重置似乎正在丢失数据?

我的核心数据存储包含 51 个Entry实体,它们的message属性为“测试”。为此执行 NSFetchRequest 确认它们都在那里。

然而,我的方法的另一部分将用于内存密集型目的,处理大块 NSData,因此我需要[oldContext reset];经常调用。

我有一个内存密集型方法,可以从我的 MOC 访问大量 NSData。因此,它会定期调用[oldContext reset];. 没有这条线,它就会耗尽内存。

我发现通过使用它,它并没有返回正确的结果。为了测试这一点,我注释掉了数据密集型代码,留下了返回message属性的代码,其中 51 个设置为“测试”(由单独的 NSFetchRequest 确认)。

但是,使用[oldContext reset];它只返回 6 个结果,消息设置为“测试”。这是我正在使用的代码:

关于为什么它没有给出它应该做的 51 个“测试”结果的任何想法?

0 投票
2 回答
497 浏览

objective-c - Is it possible to reuse one shared managed object context beetween threads, when each thread can work with data not related to data in other thread?

Simple example for the title question: one thread has prepared Place entity and is doing some processing on it (filling particular fields and their calculation takes time) and in the mean time the other thread has already prepared Category entity; the second "Category" thread wants to persist Category entity with save:&error causing Place entity from the first thread to be saved also while it didn't finished its processing job.

Am I right? Will I see the problem described if I use one shared moc?

Thanks!

0 投票
1 回答
280 浏览

core-data - 如何从 Core Data (Xcode) 中的 managedObjectContext 读取对象

我有一个程序可以在 tableView 中获取一些数字。我有一个基于核心数据的程序,它有一个带有一些属性的实体,并且可以将 tableview 的列绑定到这些属性。现在我想要每列的总和,但找不到如何读取行中的每个数据来添加它们。我用了

NSString* S= [self.managedObjectContext valueAtIndex:1 inPropertyWithKey:@"aColumnName" ];

但我收到此错误:

此类与键名的键值编码不兼容。

任何人都可以帮助我吗?

0 投票
1 回答
2116 浏览

ios - 错误:[__NSCFConstantString 路径]:发送了无法识别的选择器

我正在尝试实现Core DataiCloud的同步。

当我尝试[self fetchedResultsControllerICloud] performFetch:&error ]

-(id)初始化

我有一个错误

[_persistentStoreCoordinatorICloud addPersistentStoreWithType:NSSQLiteStoreType字符串链接- (NSPersistentStoreCoordinator *)persistentStoreCoordinatorICloud方法

0 投票
0 回答
1591 浏览

core-data - 核心数据 entityForName:nil 不是合法的 NSManagedObjectContext

我正在努力将数据添加到核心数据中并进行检索。看起来这段代码应该可以工作,但它抛出了我的标题中看到的错误。我基本上是从 NSUserDefaults 获取数据并尝试将其写入我的核心数据。

+entityForName: nil 不是搜索实体名称“项目”的合法 NSManagedObjectContext 参数

知道为什么吗?我已经尝试了一些在这里找到的解决方案,但没有任何效果。例如,我试图将它实现到 AppDelegate 中,但我的 ManagedObjectContext 仍然得到零回报。谢谢!

0 投票
3 回答
1188 浏览

ios - 保存到 iOS 托管对象上下文

我有以下代码将实体保存到托管对象上下文中。

根据我的文档,我理解以下内容:将新实体插入上下文后,我们必须保存上下文。这会将上下文的所有未保存数据刷新到持久存储。我们可以使用save:托管对象上下文的实例方法来做到这一点。如果BOOL此方法的返回值为YES,我们可以确定保存了 out 上下文。

我不清楚的是之后的语法save:,特别是在 local 之前的 & 符号savingError variable。这告诉编译器什么?

0 投票
1 回答
64 浏览

core-data - CoreData:删除所有元素后 managedObjectContext 上的奇怪元素

我在获取时遇到了麻烦。使用 sql 编辑器检查,我可以看到具有两个字段(整数位置和字符串 weburl)的表 web 在获取之前为空。但是,在获取之后:

它有一个元素:

arrwebs 不应该是空的吗?在此之前我已经删除了元素(通过编程方式和通过 sql 编辑器);

代码如下:

任何想法?

0 投票
2 回答
320 浏览

ios - 多个 ManagedObjectContext

我的 managedObjectModel中,我有几个实体。我认为可以为每个人创建ManagedObjectContext ......如果这是真的,我想知道:

  1. 我是否需要每个 ManagedObjectContext 的方法- (NSManagedObjectModel *)managedObjectModel ?

  2. 我是否需要每个 ManagedObjectContext 的方法- (void)saveContext

0 投票
0 回答
448 浏览

ios - ManagedObjectContext 取消回滚未完全删除插入的数据

我在类似的主题上看到了一堆回复,但是在遵循他们的建议之后,我仍然遇到了一个奇怪的问题,并且我的头撞到了墙上。

我有一张人员表,并且可以选择让用户通过填写​​表格来为另一个用户添加条目。该构造函数如下所示:

...ETC。

然后如果用户单击后退按钮,我会调用:

当它转到父表视图控制器时,它使用以下代码重新加载数据,并且正如预期的那样,该对象消失了。

但是 - 当我点击离开选项卡tableView并返回它时,它会再次运行相同的代码并在托管对象上下文中找到取消的对象。

但是 - 然后当我重新运行该应用程序时,它无处可寻。

如果我尝试创建另一个新人并退出,它最初会显示正确的条目数(没有任何已取消的对象),然后当我单击另一个选项卡并返回时,除了那些应该在那里的。

我已经尝试过清除FamilyMemberInfoViewController: [context reset][context rollback][context deleteObject:]等中的托管对象上下文的各种方式[context processPendingChanges]。我尝试过familyMembers两次尝试加载数组,即使单击后退按钮它仍然可以找到正确数量的对象,但是当我单击一个不同的选项卡,然后返回它会显示额外的对象(如果我去那里并返回,它会继续显示)。

有任何想法吗?