2009-05-29 4 views
14

코어 데이터 앱 (iPhone 3.0의 경우 여기서는 실제로 차이가 있다고 생각하지 않지만)에서 작업 중이며 데이터로 채워진 "시작"데이터베이스가 필요합니다. SQLite를 사용하면 번들에있는 데이터베이스를 App의 문서 디렉토리에 복사 한 다음 해당 데이터베이스를로드하면됩니다. 모든 정보가 함께 제공되며 갈 준비가되어 있습니다. 하지만 Core Data를 사용하면 App Store에 Persistent Store를 저장하고 Core Data를 시작하기 전에 복사 할 수 있는지 잘 모르겠습니다. 이 문제가 발생합니까? 꽤 많은 양의 초기 데이터가 있으므로 다른 형식으로 패키지하지 않고 파싱해야합니다.핵심 데이터 응용 프로그램에 대한 기본 데이터를 제공 하시겠습니까?

+0

안녕 Zaph가 그 점을 분명히 해 주시겠습니까? 수정 된 파일 스탬프 확인 파일이 확장명에 관계없이 항상 수정되는 것을 확인했습니다. Xcode가 파일 내용을 어떻게 변경한다는 것은? –

답변

17

예, 미리 채워진 영구 저장소를 복사 할 수 있습니다.

상점을 채우는 Mac 앱을 만들었습니다. 그것은 내 번들로 복사되고 처음에는 Docs 디렉토리에 복사됩니다. 이것은 잘 작동합니다. Core Data Books 예제가 같은 방식으로 개발되었다고 들었습니다.

이전의 SQLite 파일을 복사 할 수 있다는 의미는 아닙니다. 그것은 당신이 당신의 질문에 기초하여 그것을 이해한다고 생각하지만, Core Data 영구 저장소 여야합니다.

+0

내 앱을 처음 실행할 때 영구 저장소를 프로그래밍 방식으로 채우는 것이 좋습니다라고 생각하십니까? 내 SQLite 데이터베이스를 포함시켜야하므로 내 응용 프로그램을 상당히 작게 만들지 않겠습니까? – leolobato

+1

대기중인 사용자를 화나게하지 않고 앱에서 신속하게이 작업을 수행 할 수 있다면 좋은 방법이라고 할 수 있습니다. – Hunter

+1

조심하십시오. 데이터를 알고리즘 방식으로 생성 할 수있는 경우가 아니면 런타임시 데이터를 채워 파일 크기를 줄이면 응용 프로그램에 포함해야하는 데이터 채우기 코드의 양이 상쇄됩니다. –

1

실제로 트릭이 있습니다. ".sqlite"이외의 확장자로 복사하려는 파일의 이름을 지정해야합니다. ".bin"이 수행합니다. 그렇지 않으면 Xcode는 빌드 단계에서 파일을 응용 프로그램에 복사 할 때 파일의 내용을 변경하며로드되지 않습니다.

+0

그래도 여전히 사실입니까? – Suragch

+0

죄송합니다, 저는 몰라요. – zaph

관련 문제