问题标签 [nsmanagedobjectcontext]

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 投票
1 回答
347 浏览

iphone - NSManagedObjectContext 问题

我已经使用“使用 coredata”选项设置了我的项目。

XCode 显然自动为我设置了所有这些,现在我在应用程序委托头文件中有这些行:

我的第一个问题是,为什么托管对象和东西的初始指针有下划线?这就是它们在 .m 文件中的使用方式,但@propertys 没有下划线。

我的下一个问题是,我想在脚本中进一步使用上下文,所以我使用了这些行:

现在这行不通了,因为 obvs 没有@synthesize。但是我需要合成什么?我用下划线合成还是不用下划线,我明白了吗?delegate.managedObjectContext还是delegate.managedObjectContext_?或者根本没有?哈.. 我不太确定我是否了解所有这些托管对象的内容。

非常感谢。汤姆

0 投票
2 回答
1159 浏览

iphone - 为什么我无法使用此代码从委托中获取上下文?

我从以下代码中得到一个令人讨厌的模糊错误:

context在 .h 文件中被定义为 aNSManagedObjectContext并且在委托中是相同的。似乎包含了所有正确的文件(除了<CoreData/CoreData.h>.m 文件 - 但无论是否包含,程序都会引发相同的问题。它包含在头文件中。)

包括所有正确的框架和东西——当我开始项目时,我选择了“使用 coredata 来管理数据”或其他任何东西。那么肯定不应该有问题吗?

有没有更好的方法来做我想做的事情?基本上我不想一直通过不同的类传递上下文,直到我最终想要使用它(存储数据是我应用程序的一小部分)。

在控制台中,我得到的错误是:

如果我注释掉这条线:context = [delegate managedObjectContext];那么一切似乎都很好。(目前我还没有实际使用任何 coredata 或任何东西,所以没有更多与之相关的代码。

感谢任何可以提供帮助或对此提供一些见解的人 - 它是如此复杂。

编辑:我的应用委托文件方法:

再次编辑:

是错误所在的行。我不确定这是什么类型的文件,但我确定它显然没有找到它或其他东西......:/我应该做什么的任何想法?

@kiamlaluno - 很抱歉回滚你的编辑,不是故意的,只是想看看你改变了什么,并认为这会告诉我......但它显然完全删除了它们。哈哈。

编辑构建结果:

0 投票
1 回答
19753 浏览

iphone - 你如何创建一个 NSManagedObjectContext

在 iPhone 的核心数据中,我在尝试将数据保存到NSManagedObjectContext.

我相信我的问题都与我使用NSManagedObjectContext在多个线程中使用的 a 有关。

所以我想创建一个新的NSManagedObjectContext并尝试一下,但我找不到示例代码来简单地创建一个新实例......

我知道它很简单,但我非常感谢这里的任何帮助。

请注意,我在 Apple 文档中看到了这篇文章:http: //developer.apple.com/iphone/library/documentation/cocoa/conceptual/CoreDataUtilityTutorial/Articles/05_createStack.html

但这使用了一些我不熟悉的代码,比如 iPhone 不支持的 XMLStore 等。

0 投票
1 回答
97 浏览

iphone - 奇怪的 CoreData 问题,甚至更奇怪的解决方案。知道为什么吗?

我是一个非常舒服的 CoreData 用户。我遇到了一个绝对让我丧命的问题,我弄清楚出了什么问题,并且不知道为什么它会导致我看到的问题。谁能解释一下?

好的,我们有一个主要的 MOC,它可以完成大多数“只读”数据工作并处理简单的写入操作。当我们要进行大写/导入/等等时,我们在一个新线程上分配一个后台 MOC,完成所有繁重的工作,然后保存它。保存会导致我们的 NSManagedObjectContextWillSaveNotification 触发,然后我们 mergeChangesFromContextDidSaveNotification: 并且主 MOC 上的所有内容都会反映更改。很标准。

因此,几天前对 NSManagedObject 子类之一进行了更改。更改是 setValue:forKey: 中的调用。在该方法中没有进行特殊处理时,我们最初调用的是 [super setValue: forKey:]。它已更改为 [self setPrimitateValue: forKey:] 和...

保存后 mergeChangesFromContextDidSaveNotification: 会被调用,但主 MOC 不会反映更改。所以这有点奇怪。但是关闭应用程序然后再次打开它,更改就会神奇地出现。什么!?!

我知道持久存储保存更改但不是其他 MOC 存在一些问题。然后,当新的 MOC 创建新的发布时,一切都再次陷入困境。为什么?

任何关于这个话题的观点都会有所帮助。

0 投票
1 回答
269 浏览

iphone - 从通过关系链接到 managedObjectContext 的实体编辑核心数据行

我需要从我的 fetchedResultsController 编辑与我的主实体有关系的实体中的一行数据,在这种情况下,“theUser”是我的用户实体的一个实例。

我基本上需要编辑已经存在的 CannedMessage 行之一并保存它。如下所示,我可以很好地访问“消息”,但是一旦找到 CannedMessage,我就不确定如何将其保存回“theUser”的 managedObjectContext

有什么建议吗?

0 投票
1 回答
1046 浏览

iphone - 将数据复制到可变数组时遇到问题

我不断收到错误“由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'+ [MainViewController minimumFormInContext:]:无法识别的选择器发送到类”来自这行代码:NSLog(@“访问特定的矿井实体”);

使用调试器,我将错误范围缩小为:

我该如何解决?

0 投票
2 回答
811 浏览

iphone - fetchresultscontroller 问题或托管对象上下文?

参考帖子:

核心数据 - 基本问题

我能够从这段代码中获取托管对象上下文。它让我想到另一个问题。我有 2 个视图控制器和 1 个 NSObject

  1. 用户查找 (VC)
  2. 用户查找设置(VC)
  3. FetchProcessor (NSObject)

按顺序,Userlookup vc 首先加载,并且有一个按钮来加载 Userlookupsettings VC + 一个文本框和 UiButton。当应用程序加载并且我点击 SETTINGS uibutton 时,一切正常......但是,当我进行搜索(FetchProcessor)然后加载设置时,它给了我错误(请在下面检查)



错误:



编辑并添加了相关代码..

用户查找:


现在@implementation GetUserDetailsS​​OAPService


现在@interface TCodeSettings:NSObject


现在@interface UserLookupSettings:UITableViewController


0 投票
2 回答
572 浏览

iphone - 对于这种常见的应用程序模式,什么是有效的 CoreData 上下文/协调器策略?

我有一个常见的应用程序模式:用户在主视图控制器中输入数据,然后在模态视图控制器的表中查看它,其中可以删除或修改行。我遵循斯坦福 iPhone 课程的一般设计策略,但在某处事情出轨了,我得到的只是 SIGABRT 和例外情况,例如“非法尝试在不同上下文中的对象之间建立关系 'xyz'”。

在斯坦福课程中,我使用了一个名为“Database”的单例类,它应该在请求时返回相同的上下文。所以我在主视图控制器上的 viewDidLoad 方法中的第一个命令是:

nmocontext 是我在整个视图控制器中使用的一个 ivar。当用户想要查看另一个视图控制器时,我会分配初始化它,然后以模态方式呈现它。(它有一个 NSFetchedResultsController 从我的商店提供数据。)我在这里尝试了各种策略:

  • 我已将 NSFetchedResultsController 设置为由主视图控制器设置的保留属性
  • 我已将 NSManagedObjectContext 设为主视图控制器设置的保留属性;和
  • 通过在表格视图控制器的 viewDidLoad 方法的开头重复上面的这两行代码,我在内部使用了单例。

无论我选择哪一个,我无法解决的一个问题是,在用户关闭并释放表视图控制器(及其 NSFetchedResultsController)后,当访问存储时,我开始在主视图控制器中崩溃(如“上面提到的非法尝试”错误)。

处理这种常见应用程序模式的最佳实践是什么?我仍然希望使这个应用程序与 iPhone SDK 3.x 兼容,但是当我使用 iOS 4 时,我的崩溃似乎确实更少——如果 3.x 存在导致我出现问题的潜在问题,请告诉我知道,我可能只针对 iOS 4。

谢谢!

0 投票
2 回答
302 浏览

iphone - 同一托管对象(表)的 NSFetchedResultsController

我想知道我是否可以这样做

视图 1:在 TABLEA 上使用 NSFetchedResultsController 来检索数据,显示在表视图中并采取措施保存它

然后在 VIEW 2 中使用 SAME 表(即 TABLEA)上的 NSFetchedResultsController 来检索没有表视图的数据并返回到 VIEW 1 以保存以前的托管对象??

0 投票
1 回答
389 浏览

iphone - iPhone:在 NSManagedObjectContext 对象之间传输对象?

我目前有一个 NSManagedObjectContext ,其中包含在表格视图中显示的 5 个视频对象。

当用户选择一行时,我将推入一个新的视图控制器以显示对象详细信息,并为用户提供“将视频添加到收藏夹”的选项。

为此,我想创建一个新的 NSManagedObjectContext,将选定的 Video 分配给它,并将其推送到新的视图控制器。

有人可以解释一下我该怎么做吗?

我现有的代码看起来像: