2011-11-10 64 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>。它會工作

相關問題