2011-11-10 74 views
50

我创建了非核心数据项目。我现在想要使用核心数据。在构建阶段,我将我的二进制文件与CoreData.framework链接起来。在我的应用程序委托的方法,我想手动创建像这样无法在iOS上创建托管对象上下文

NSManagedObjectContext *aContext = [[NSManagedObjectContext alloc] init]; 

当我做以上,我收到以下错误被管理对象的情况下,

Receiver 'NSManagedObjectContext' for class message is a forward declaration. 

什么我可能是任何建议做错了?

+13

你在应用程序委托头中包含了#import 吗? – isaac

+6

谢谢你的作品。更好的解决方案是将其放入'prefix.pch'文件中。 – David

+0

另外,请谨慎使用称为消息的类。这会与iOS中的其他类发生冲突。我以前有过这种情况。 – Fogmeister

回答

126

您需要导入CoreData/CoreData.h在您的应用程序委托的头文件:

#import <CoreData/CoreData.h> 

因为你很可能通过outyour应用程序中使用它,你应该把它放在预编译头文件,YourApp-Prefix.pch :

#ifdef __OBJC__ 
    #import <UIKit/UIKit.h> 
    #import <Foundation/Foundation.h> 
    #import <CoreData/CoreData.h> 
#endif 
+5

如果您的应用程序始终使用Core Data,则还可以将同一行添加到项目的Supporting Files目录中的YourAppName-Prefix.pch文件中。 – robotpukeko

6

只需在您的实现文件中写入#import < CoreData/CoreData.h>。它会工作

相关问题