manageObjectContext 抛出无法识别的选择器错误?
Posted
技术标签:
【中文标题】manageObjectContext 抛出无法识别的选择器错误?【英文标题】:manageObjectContext throwing unrecognized selector errors? 【发布时间】:2011-07-16 03:36:14 【问题描述】:我的应用程序是典型的非基于文档的核心数据应用程序。我没有修改任何预先提供的项目代码,并且一直在使用 Xcode 默认提供的 AppDelegate 文件(项目不够大,无法保证更多)。
现在,当我尝试将项目添加到我的核心数据存储之一时
NSManagedObject *colorItemObject = [NSEntityDescription insertNewObjectForEntityForName:@"ColorItem" inManagedObjectContext: [NSApp managedObjectContext]];
[colorItemObject setValue:[colorSetsArrayController valueForKeyPath:@"selection.colorSetName"] forKey:@"parent"];
它抛出一个无法识别的选择器异常:
-[_NSStateMarker managedObjectContext]: unrecognized selector sent to instance 0x100118290
使用 [self managedObjectContext] 会发生类似错误。这可能是什么原因造成的?
【问题讨论】:
【参考方案1】:我很确定
[NSApp managedObjectContext]
没有返回有效的managedObjectContext
。您是否使用名为managedObjectContext
的方法为NSApplication
创建了一个类别?如果没有,请将其更改为
[self managedObjectContext]
它应该可以工作。 (我假设您的代码在您的应用委托中。)
【讨论】:
感谢您的回复,但我也尝试过 [[NSApp delegate] managedObjectContext] 和 [self manageObjectContext]。它们都可以正常编译而没有任何警告,但会在运行时抛出错误 [self managedObjectContext] 和上面一样 - 即 - [_NSStateMarker managedObjectContext]: unrecognized selector sent to instance 0x100118290. [[NSApp delegate] managedObjectContext] 也是如此。 你能展示一下-managedObjectContext
的实现吗?你在做retain/release
正确吗?如果你从 Xcode 菜单栏运行analyze
(它在build
菜单项下方)它会说什么?
实现甚至不是我的,它只是每个 Core Data 项目中包含的标准代码。这让我感到困惑,因为它在其他项目中运行良好。分析显示没有超出规范的内容,有几个虚假的 IB 错误(谈论重叠视图)。
这确实很奇怪。您最近是否对数据模型进行了更改?彻底清理构建目录并重新构建应用程序如何?以上是关于manageObjectContext 抛出无法识别的选择器错误?的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 子类抛出一个无法识别的选择器发送到实例
UITableViewCell 中的 UITextField 抛出 -[UITextInputTraits length]:无法识别的选择器发送到实例
“AppDelegate”类型的值没有成员“manageObjectContext”
我不断收到 [RCTCxxBridge jsContextRef] 发送到实例 0x7f8af262f4f0 的无法识别的选择器是从 JS 线程抛出的