2013-02-16 5 views
2

핵심 데이터 데이터베이스/.sqlite 파일을 드롭 박스에 동기화/업로드하려고합니다. 내 사용자가 로그인하면 , 내가 파일을 업로드 할 수있는 버튼이 있습니다코어 데이터 데이터베이스/.sqlite 파일을 Dropbox에 동기화

-(IBAction)sync{ 

NSString *localPath = [[NSBundle mainBundle] pathForResource:@"cache" ofType:@"sqlite"]; 
NSString *filename = @"cache.db"; 
NSString *destDir = @"/"; 
[self.restClient uploadFile:filename toPath:destDir withParentRev:nil fromPath:localPath]; 
} 

그러나 문제는 여기에 것은 :

: 내 .sqlite 데이터베이스의 이름을 잘 모릅니다, 나는 아래에 봤는데

~/Library/Application Support/iPhone Simulator/<SDK>/Applications/<UUID>/Documents/bc.db

// 모든 파일을 조사한 결과 .sqlite 파일을 찾을 수 없습니다.

그러나 나는 app name.sqlite이라는 파일을 찾을 수 없으므로 cache.db 만 찾을 수 있습니다. 여기에서 무엇을해야할지 모르십니까? cache.db 파일을 업로드 할 수 있습니까? 또는 다른 파일이 app name.sqlite입니까? 어떤 도움이라도 대단히 감사합니다!

+0

코어 데이터를 SQLite 또는 단순히 SQLite로 사용하고 있습니까? 큰 차이가 있습니다. – CodaFi

+0

메신저와 핵심 데이터를 사용하여 메신저! @ cododi –

+1

위대한, 다음이 작동하지 않습니다. Core Data는 데이터베이스가 상주하는 디렉토리에 분산되어있는 일련의 독점적 인 복잡한 파일 형식을 사용합니다. 컨테이너를 iCloud에 권장되는 방법으로 동기화 할 수는 있지만 휠체어를 다시 만들 필요가없는 많은 작업을 수행 할 수 있다고 생각하지 않습니다 (http://timisted.github.com/TICoreDataSync/). 내가 말하고자하는 것은 cache.db가 존재하지 않는다는 것입니다. – CodaFi

답변

4

SQLite 파일은 어디서나 만들었습니다. 수수께끼는 없습니다. 코어 데이터에 파일을 원하는 위치를 말해야하며, 파일의 위치는 이동해야한다고 말합니다.

그것이 어디

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyApp.sqlite"]; 

처럼 보이는 당신은 아마합니다 (persistentStoreCoordinator 방법) 앱 위임 클래스의 라인을 가지고 애플의 프로젝트 템플릿 중 하나를 사용하는 경우

, 그리고 당신이 찾아야한다 방법 앱의 파일 경로

일 수 있습니다. "외부 저장소 허용"과 함께 이진 속성을 사용하지 않는 경우 전체 데이터 저장소가됩니다. 인 경우이를 사용하여 외부 바이너리가 포함 된 이름이 문서화되지 않은 병렬 숨겨진 디렉토리가 있습니다.

데이터 저장소를 Dropbox에 복사하는 것이 유용하지 않을 수 있습니다. 이런 식으로 한 장치에서 다른 장치로 데이터 저장소를 동기화 할 수 없습니다. 데이터 손상은 사실상 보장됩니다.

+0

대답에 감사 드리며, 내 핵심 데이터를 드롭 상자에 동기화하는 더 좋은 방법은 무엇일까요? –

+0

실제로 문서 디렉토리에있을 때 sqlite 파일을 내 번들에서 가져 오려고했습니다! 어리석은 멍청한 실수로 .. –

+1

Dropbox를 통해 코어 데이터를 동기화하려면 TICoreDataSync (CodaFi에 언급 됨)가 현재 유일한 옵션입니다. WasabiSync 또는 Simperium과 같은 타사 옵션을 고려할 수도 있습니다. –

관련 문제