我一直在努力使用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
答案 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;