我有一个现有的项目,想要使用CoreData。
在创建项目时,
阅读教程后,我去我的
我也尝试将.pch文件放在我的复制包资源中,但没有成功。有帮助吗?
在创建项目时,
CoreData.framework
已经添加到了我的Frameworks
组中,并且它位于我的项目的目标 -> 构建阶段下的Link Binary With Libraries
中。在创建此项目时,我没有勾选“使用Core Data”--甚至连复选框都没有--它只是简单地存在于我的项目中。我使用的是Xcode 4.6.3版本。阅读教程后,我去我的
App-Prefix.pch
文件中添加了一个引用到CoreData的语句。现在它看起来像这样:#import <Availability.h>
#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
#import <Foundation/Foundation.h>
#endif
然后,在我的AppDelegate.h
中添加了以下内容:
@property (readonly, nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (readonly, nonatomic, strong) NSManagedObjectModel *managedObjectModel;
@property (readonly, nonatomic, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
现在,当我重写managedObjectContext
的getter方法时,Xcode会抛出错误:
使用了未声明的标识符'_managedObjectContext',你是想使用 'NSManagedObjectContext' 吗?
这是我在AppDelegate.m
中的getter方法:
- (NSManagedObjectContext *)managedObjectContext {
if(_managedObjectContext != nil)
return _managedObjectContext;
NSPersistentStoreCoordinator* psc = [self persistentStoreCoordinator];
if(psc != nil)
{
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:psc];
}
return _managedObjectContext;
}
我也尝试将.pch文件放在我的复制包资源中,但没有成功。有帮助吗?
@synthesize managedObjectContext = _managedObjectContext;
来合成属性。 - Martin R