코어 데이터를 지원하지 않고 Xcode 5.1.1에서 프로젝트를 만들었습니다.기존 프로젝트에 코어 데이터를 사용할 수 없습니다.
이제 핵심 데이터 지원을 얻으려고합니다.
단계 :
1) 파일 -> 새로 만들기 -> 파일 -> 데이터 모델 -> 추가.
It created : samplecd.xcdatamodeld
2) 추가 엔티티 :
myname type: String
3)
내가 '코어가 하나 개 더 프로젝트를 만든
AppDelegate.h 및 AppDelegate.m의 변화를 수행하려면 데이터 '를 활성화하고 아래 내용을
으로 이전 프로젝트에 복사했습니다.
AppDelegate.h
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;
AppDelegate.m
- (void)saveContext
{
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
#pragma mark - Core Data stack
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel
{
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"withcoredata" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"withcoredata.sqlite"];
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return _persistentStoreCoordinator;
}
#pragma mark - Application's Documents directory
// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
는 ERROR :
나는 일 수 아래의 컴파일 오류 e :
"AppDelegate.m:122:35: Receiver 'NSManagedObjectContext' for class message is a forward declaration"
AppDelegate.m:122:34: Receiver type 'NSManagedObjectContext' for instance message is a forward declaration
이 문제를 해결하는 방법은 무엇입니까?
는 당신이'NSManagedObjectContext.h'를 가져 마십시오 AppDelegate.m? –
아 .. AppDelegate.h에서 # import가 필요한 것 같습니다. 그것은 작동하지 않습니다. :) –
DrunkenMaster
Dheeraj 완료. :) – DrunkenMaster