为什么我在这段代码中得到一个"未知类型名称NSManagedObjectContext"?

Gre*_*reg 19 iphone core-data objective-c ios4

任何想法为什么我在这段代码中得到"未知类型名称NSManagedObjectContext"?

我基本上是将核心数据添加到现有项目中.我添加了coredata行+我在CoreData.framework中添加到项目中.为此,我去了:

  • 何时申请目标
  • 建立阶段
  • 链接二进制文件库
  • 然后添加了CoreData框架
  • 然后将其拖放到项目导航器上,以便与Xcode中的其他框架图标一起显示

请注意我还有什么需要做的?CoreDataBooks示例代码与我似乎编译的内容几乎相同

#import <UIKit/UIKit.h>

@interface myAppAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

// Core Data
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;  // ERROR: unknown type
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;   // ERROR: unknown type
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;   // ERROR: unknown type

- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;

@end
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 37

然后,您必须将Core Data框架头导入到使用Core Data类的任何文件中.

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
Run Code Online (Sandbox Code Playgroud)

  • 哦 - 我回到了XCode 4为基于CoreData窗口的iPhone应用程序创建的模板,看看,虽然没有像你建议的那样导入,但是在项目-prefix.pch文件中有这个"#ifdef __OBJC__"部分.在其中包含CoreData import语句 (4认同)

Nic*_*ick 6

正如Greg上面所说,XCode 4处理这个问题的方法是添加#import <CoreData/CoreData.h>[projectname]_Prefix.pch我在Other Sources文件夹/组中找到的文件中.