2012-06-18 27 views
0

我一直在努力Core Data 感叹所以我决定去工作这个this Apple Core Data tutorial。我在本教程中的要点是要求我建立迄今为止已经放在一起的项目。所以我在本教程中目前是right here。当我建立这个项目我收到以下错误:使用ARC构建Apple Core Data Tutorial的错误

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

回答

1

你伊娃被错误地声明。在RootViewController.h,

NSManagedObject *managedObjectContext; 

应该写,因为错误抱怨,

NSManagedObjectContext *managedObjectContext; 

而实际上,随着现代运行时,相当长一段时间它已经没有必要(通常​​虐待建议)明确声明支持ivars的@synthesize'd属性。所以你可以完全删除ivar行,让编译器为你制作ivar。

+0

感谢您指出了我。当我回到家时,我会给你说的一个尝试,然后将问题标记为已回答。感谢写得很好的回复。 – Chris

+0

@Chris我的荣幸,让我知道你是否遇到过任何问题。 (这听起来像是相当古老的示例代码,所以如果还有其他问题在等待,我不会感到惊讶。) –

0

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

编译器无法合成属性managedObjectContext,因为您有一个同名的伊维尔,但具有不同的类。

重命名伊娃和改变合成路线:

@synthesize managedObjectContext = _managedObjectContext;