0

我一直在为 Core Data叹息而苦苦挣扎,所以我决定学习这个 Apple Core Data 教程。我在教程中要求我构建到目前为止我已经组合在一起的项目。所以我现在在教程中。当我构建项目时,我收到以下错误:

Type of property 'managedObjectContext' ('NSManagedObjectContext *') does not match type of ivar 'managedObjectContext' ('MSManagedObject *__strong')

根视图控制器.m

Ivar is declared here

这就是我在错误窗口中得到的。

这是我的文件的样子,

RootViewController.h http://pastie.org/4111206

RootViewController.m http://pastie.org/4111216

AppDelegate.h http://pastie.org/4111222

AppDelegate.m http://pastie.org/4111227

4

2 回答 2

1

您的 ivar 声明不正确。在 RootViewController.h 中,

NSManagedObject *managedObjectContext;

应该写,因为错误抱怨,

NSManagedObjectContext *managedObjectContext;

实际上,在现代运行时,很长一段时间以来,没有必要(而且通常是不明智的)为@synthesize'd 属性显式声明支持 ivars。所以你可以完全删除 ivar 行,让编译器为你创建一个 ivar。

于 2012-06-18T22:43:48.803 回答
0

错误消息已经在解释它。你有一个类 NSManagedObject 的 ivar managedObjectContext (那是你的错误)。

编译器无法合成属性 managedObjectContext 因为你有一个同名但不同类的 ivar。

重命名 ivar 并更改合成行:

@synthesize managedObjectContext = _managedObjectContext;
于 2012-06-18T22:46:15.483 回答