2014-04-11 2 views
0

내가 SQLite는 데이터베이스 프로젝트를 가지고 MagicalRecord 라이브러리를 통해 작업 : 응용 프로그램의 현재 버전에서AFIncrementalStore

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:storeFileName]; 

내가 과도 객체를 통해 웹 서비스 (RPC) 작업 : 보내 요청, 객체에 대한 응답을 매핑하여 보여줍니다. 데이터베이스에서 사용자가 즐겨 찾기에 추가 한 항목 만 저장합니다.

이제 간단한 캐싱과 오프라인 작업을 위해 AFIncrementalStore API 호출을 구현하고 싶습니다. 첫 번째 질문은 어떻게 CoreData 스택에 AFIncrementalStore를 추가 할 수 있습니까? 나는 예를 들어 메모리에 저장소를 추가하는 것을 시도하고있다 :

NSPersistentStoreCoordinator *coordinator = [NSPersistentStoreCoordinator MR_defaultStoreCoordinator]; 

AFIncrementalStore *incrementalStore = (AFIncrementalStore *)[coordinator addPersistentStoreWithType:[RPCAPIIncrementalStore type] configuration:nil URL:nil options:nil error:nil]; 
NSError *error = nil; 
if (![incrementalStore.backingPersistentStoreCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:&error]) { 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
} 

하지만 난 내 API를 증가 저장소가 그 요청을 처리 (내가 그 실체에 대한 API 호출이 필요하지 않습니다) 내 로컬 데이터베이스에서 엔티티를 가져 오기 할 때와 노력 서버에서이 항목을 가져 오는 중!

원격 데이터베이스와 로컬의 개체를 효율적으로 사용하기 위해 스택을 올바르게 구성해야합니까? 이것이 AFIncrementalStore에 가능한가?

답변

0

다음은 AFIncrementalStore를 설정하는 데 사용하는 코드입니다. 당신을 도와줍니다 여부,하지만이가 NSMainQueueConcurrency 일 함께 해킹에 의해 작동시킬 수 있다면

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"ShuffleModel.sqlite"]; 

    AFIncrementalStore *incrementalStore = (AFIncrementalStore *)[[NSPersistentStoreCoordinator MR_defaultStoreCoordinator] addPersistentStoreWithType:[SFIncrementalStore type] configuration:nil URL:nil options:nil error:nil]; 

    NSError *error = nil; 

    if (![incrementalStore.backingPersistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSPersistentStore MR_defaultLocalStoreUrl] options:nil error:&error]){ 
     DDLogVerbose(@"Unresolved NSIncrementalStore error %@, %@", error, [error userInfo]); 
     abort(); 
    } 

확실하지 : 당신의 설정을위한 비슷한 일을해야합니다. AFNetworking 2.0으로 마이그레이션되었으며 제대로 작동하는 것 같습니다. 코드는 다음과 같습니다. https://github.com/premosystems/AFIncrementalStore

https://github.com/AFNetworking/AFIncrementalStore/issues/265