使用ARC构建Apple Core Data Tutorial时出错

时间:2012-06-18 22:37:42

标签: ios xcode core-data

我一直在努力使用Core Data sigh ,所以我决定使用这个this Apple Core Data tutorial。我正在教程中,它要求我构建到目前为止我已经整理好的项目。所以我现在在教程中right here。当我构建项目时,我收到以下错误:

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

RootViewController.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

2 个答案:

答案 0 :(得分:1)

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

NSManagedObject *managedObjectContext;
应该写错误,因为错误抱怨,

NSManagedObjectContext *managedObjectContext;

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

答案 1 :(得分:0)

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

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

重命名ivar并更改合成线:

@synthesize managedObjectContext = _managedObjectContext;