2012-05-08 3 views
1

저는 응용 프로그램을 만들고 SQLite 3을 사용하여 로컬에 데이터를 저장하고 있습니다. 앞으로는 동일한 응용 프로그램의 버전을 업데이트 할 예정이며, 새 IPA 파일을 다운로드하여 설치 한 후이를 업데이트해야합니다 만.목표 C : sqlite3 데이터베이스를 응용 프로그램 폴더 외부에 저장하는 방법?

하지만 여기에서는 문제가 발생합니다. 클라이언트는 웹 서버를 사용하지 않고 이전 버전에 로컬로 저장된 데이터를 최신 버전으로 대체해야한다고 원합니다.

나는 severallinks을 서핑과 부정 응답으로 모든 결과는 여전히 내가 응용 프로그램의 경우에도 제거하지 않는 방식으로 응용 프로그램 폴더 밖으로 내 데이터베이스를 저장할 수있는의 도움으로 어떤 방법이 있는지 알고 싶습니다 데이터베이스에 영향을 미치고 최신 버전은 동일한 데이터베이스에서 데이터를 가져올 수 있습니다. 아니면 다른 방법으로? 미리 답변 해 주셔서 감사합니다.

답변

2

Documents 폴더에 데이터베이스를 저장해야합니다. 앱 스토어를 통해 앱이 업데이트 되더라도 모든 콘텐츠가 거기에 남아 있기 때문에 보관해야합니다 (앱을 삭제하면 삭제됩니다 .. 계속 기억하십시오)

당신은 Database를라는 Documents 폴더 안에 별도의 폴더를 생성하고이 같은 경로를 만들 수 있습니다 ..에 내 파일을 저장할 수 있습니다 ..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder 
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Database"]; 

편집 :

,536,

앱을 삭제 한 후에도 보관하고 싶기 때문에 앱의 샌드 박스 기능으로 인해 기기에서 할 수 있다고 생각하지 않지만 여전히 한 가지 옵션이 있습니다.

개인용 서버에이 데이터베이스를 백업 할 수 있으며 앱이 설치 될 때마다 해당 특정 사용자에 대한 데이터베이스가 존재하는지 여부를 서버에 쿼리해야합니다. 존재하는 경우 문서 디렉토리에 다운로드하여 저장하면 다른 데이터베이스를 제공 할 수 있습니다. 한 번씩이 백업을 수행하거나 사용자 자신을위한 동기화 옵션을 제공 할 수 있습니다. 이것이 도움이되기를 바란다. 앱을 제거 할 때 응용 프로그램 데이터를 유지하려면

+0

감사합니다 ankit, 나는 이미 그렇게하고 있습니다. 그러나 데이터베이스의 복사본을 데이터베이스의 사본을 보관하는 방식으로 데이터베이스를 저장하고 싶습니다. 어떤 해결책입니까? – Sarah

+0

@Sarah 수정 사항을 확인하십시오. –

0

, 당신은 기본적으로 두 가지 옵션이 있습니다하십시오 서버 클라우드 서비스에 대한 응용 프로그램 데이터

  • 동기화에

    • 스토어 응용 프로그램 데이터를 같은 iCloud

    앱을 제거한 후 기기에 앱 데이터를 보관할 수있는 방법이 없습니다 (AFAIK).

  • +2

    은 작동하는 두 번째 방법입니다 ..? Coz 나는 애플 리케이션이 삭제되고 그것의 내용이 또한 삭제 될 것보다 iCloud로 동기화가 수행되는지 궁금 해서요 ...? –

    +0

    iCloud API는 서비스와 동기화하기 위해 특수 데몬을 사용합니다. 나는 그것이 여전히 애플 리케이션을 삭제하더라도 변경 사항을 동기화 할 것이라고 생각하지만, 앱의 기능에 중요하다면주의 깊게 테스트해야한다. – Krumelur

    +0

    iCloud 솔루션이 제대로 작동하는지 확인할 수 있습니다. 앱을 삭제하기 전에 파일의 로컬 복사본 (db 파일)을 삭제하지 않으면 db 파일은 여전히 ​​iCloud 컨테이너에 보관됩니다. – user523234

    0

    Apple이 반대하기 때문에 Documents 폴더 외부에 사용자 데이터를 저장할 수 없습니다. 사용자 데이터를 다른 장소에 저장하는 경우 Apple 앱 검토 중에 앱이 거부됩니다.

    +0

    나에게 같은 것을 말하는 링크 나 일종의 것을 제공 할 수 있습니까? 그것은 나를 많이 도울 것입니다. – Sarah

    +0

    https://developer.apple.com/icloud/documentation/data-storage/ –

    2

    iOS 데이터 저장 가이드 라인.

    iCloud에는 Wi-Fi를 통해 사용자의 iOS 장치를 자동으로 백업하는 백업 기능이 포함되어 있습니다. 응용 프로그램 번들 자체, 캐시 디렉토리 및 임시 디렉토리를 제외하고 응용 프로그램의 홈 디렉토리에있는 모든 항목이 백업됩니다. 구입 한 음악, 앱, 책, 카메라 롤, 기기 설정, 홈 화면 및 앱 구성, 메시지 및 벨소리도 함께 백업됩니다. 백업은 무선으로 수행되고 각 사용자별로 iCloud에 저장되기 때문에 앱에 저장되는 데이터의 양을 최소화하는 것이 가장 좋습니다.용량이 큰 파일은 백업을 수행하고 사용자가 사용할 수있는 iCloud 스토리지를 더 많이 소비하는 데 걸리는 시간이 길어집니다. 백업이 가능한 한 효율적으로되도록

    , 다음 지침에 따라 앱의 데이터를 저장해야합니다 :

    1. 만 문서 및 기타 데이터가 사용자 생성, 또는 그 그렇지 않으면 할 수 없다 응용 프로그램에서 다시 작성한 파일은/Documents 디렉토리에 저장해야하며 iCloud에서 자동으로 백업해야합니다.

    2. 다시 다운로드하거나 다시 생성 할 수있는 데이터는/Library/Caches 디렉터리에 저장해야합니다. 캐시 디렉토리에 저장해야하는 파일의 예로는 데이터베이스 캐시 파일과 잡지, 신문 및지도 응용 프로그램에서 사용되는 것과 같은 다운로드 가능한 내용이 있습니다.

    3. 일시적으로 만 사용되는 데이터는/tmp 디렉토리에 저장해야합니다. 이러한 파일은 iCloud에 백업되지 않지만 사용자의 장치에서 공간을 계속 소비하지 않도록 파일을 삭제 한 후에 파일을 삭제해야합니다.

    4. 저장소가 부족한 상황에서도 장치에 남아 있어야하는 파일을 지정하려면 "백업하지 않음"특성을 사용하십시오. 이 속성을 다시 만들 수 있지만 앱이 제대로 작동하기 위해 저장 용량이 부족한 경우에도 유지해야하거나 고객이 오프라인에서 사용할 수있을 것으로 기대하기 때문에이 속성을 사용하십시오. 이 속성은 문서 디렉토리를 포함하여 디렉토리가 무엇이든 상관없이 표시된 파일에서 작동합니다. 이러한 파일은 제거되지 않으며 사용자의 iCloud 또는 iTunes 백업에 포함되지 않습니다. 이러한 파일은 장치상의 저장 공간을 사용하기 때문에 주기적으로이 파일을 모니터링하고 제거해야합니다. 자세히 알아보기

    자세한 내용은 iOS App Programming Guide를 참조하십시오.

    +0

    정말 여기 게시 할 수 있다고 생각하지 않습니다 ... 적어도 Apple 웹 사이트에서이 콘텐츠를 보려면 iOS 개발자로 로그인해야했습니다. . –