2014-12-05 6 views
4

마술 기록으로 restkit을 사용하려고합니다.Restkit + 마법 기록 문제로 인해 SQL 파일을 찾고 있습니다.

은 그래서 나는 다음과 같은 URL에 따라 그것을 설정 한 : https://github.com/blakewatters/RKMagicalRecord

내 문제는 그 내가 매직 기록을 사용하여 기록을 만들려고하면, 난 항상 다음과 같은 오류를가하려고 처음 도착 아무것도 저장하십시오. 앱을 닫고 다시 시작하면 문제가되지 않습니다.

+ MagicalRecord (에러 처리) defaultErrorHandler : 오류 :이 그것을 찾을 수없는 의미

/var/mobile/Containers/Data/Application/1CECA7F7-510F-47F2-9F2D-4D0346C4E74F/Documents/WhateverModel.sqlite 파일. 그래서 폴더를 확인했는데 restkit에게 설치하도록 지시 했음에도 불구하고 그렇습니다.

왜 그런지 알고 싶습니다.

NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Model" ofType:@"momd"]]; 
NSManagedObjectModel *managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] mutableCopy]; 
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel]; 
NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"Model.sqlite"]; 
NSError *error = nil; 
[managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:&error]; 
[managedObjectStore createManagedObjectContexts]; 

// Configure MagicalRecord to use RestKit's Core Data stack 
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:managedObjectStore.persistentStoreCoordinator]; 
[NSManagedObjectContext MR_setRootSavingContext:managedObjectStore.persistentStoreManagedObjectContext]; 
[NSManagedObjectContext MR_setDefaultContext:managedObjectStore.mainQueueManagedObjectContext]; 

RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ROOT_URL]]; 
objectManager.managedObjectStore = managedObjectStore; 

만들기 및 아래의 객체를 저장하기

설정 코드 :

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { 
    WhateverObject *obj = [WhateverObject createInContext:localContext]; 
}completion:^(BOOL successful, NSError *error) { 

    if(successful){ 

    }else{ 

    } 
}]; 
+1

이 어떻게 지시 않았다 RestKit을 설정 하시겠습니까? –

+0

https://github.com/blakewatters/RKMagicalRecord – user281300

+0

에서 프로젝트를 따라 갔다. 설정과 저장 모두에 대한 질문에 코드를 표시하고 전체 오류 메시지와 스택 추적을 표시한다. – Wain

답변

0

나는 마법 기록을 제거하고 그것을 설정하려면 다음을 사용 :

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ROOT_URL]]; 

NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]; 
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel]; 
manager.managedObjectStore = managedObjectStore; 
/** 
Complete Core Data stack initialization 
*/ 
[managedObjectStore createPersistentStoreCoordinator]; 

NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"WhateverModel.sqlite"]; 

NSError *error; 

NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:@{NSMigratePersistentStoresAutomaticallyOption:@YES, NSInferMappingModelAutomaticallyOption:@YES} error:&error]; 

NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error); 

// Create the managed object contexts 
[managedObjectStore createManagedObjectContexts]; 

// Configure a managed object cache to ensure we do not create duplicate objects 
managedObjectStore.managedObjectCache = [[RKInMemoryManagedObjectCache alloc] initWithManagedObjectContext:managedObjectStore.persistentStoreManagedObjectContext];