2009-11-12 3 views
2

읽기 전용 데이터를 표시하는 응용 프로그램에서 작업 중입니다. 더 많은 책입니다.읽기 전용 응용 프로그램의 코어 데이터 미리 채우기

SQLite로는 쉽지만 성능 및 코어 데이터 사용에 만족하지 않습니다.

핵심 데이터를 미리 채우는 것이 문제는 어려운 프로세스라는 것입니다.

내 질문 : 사전 충전을 위해 동일한 데이터 모델을 사용하는 도우미 아이폰 애플리케이션을 만들 수 있습니까? 그리고 채워진 .xcdatamodel 파일을 가져 와서 원래 응용 프로그램에서 사용 하시겠습니까?

나는이 만드는 희망 의미 :

아드

답변

3

내가 무엇을 요구하는지 것은 당신이 선행 CoreData 데이터베이스를 생성하고이 아이폰에 복사 할 수 있는지 여부를 믿습니다. 그 맞습니까?

This article 도움이 될 것입니다. 여기에 인용입니다 :

나는 따라서 다음과 같은 5 단계 프로세스를 제안 :

  1. 일반적으로 파일의 행 데이터 (기업)의 각 행을 배치, 쉼표로 구분 된 파일에 데이터를 작성 서로 다른 열 (속성)을 쉼표로 구분합니다.
  2. 독립 실행 형 프로그램을 작성하고 주 프로젝트에서 .xcdatamodel 파일을 복사하십시오.
  3. 쉼표로 구분 된 파일을 구문 분석하고 주 프로젝트의 영구 저장소와 동일한 코어 데이터 영구 저장소에 정보를 삽입하는 코드를 새 프로그램에 작성하십시오.
  4. 시뮬레이터에서 프로그램 실행
  5. 시뮬레이터의 문서 디렉토리에서 실제 프로젝트 번들로 데이터를 복사하십시오.
+0

안녕하세요 Benjamin 이 페이지는 이미 읽은 상태입니다. 내 질문입니다 : CoreData 데이터베이스를 작성하는 데 전념하는 독립 실행 형 프로그램을 사용할 수 있으며 데이터를 입력 한 후 문서 디렉토리의 채워진 데이터 파일을 내 기본 번들로 복사합니다. 다시 말하면 : can CVS 파일 단계를 데이터 입력을위한 독립 실행 형 응용 프로그램으로 대체합니까? – Adhamox

+0

예. 단지 1 단계를 제거하십시오. 그런 다음 3 단계를 화면에 대치하십시오.이 화면에서는 데이터 파일을 파싱하는 대신 직접 정보를 삽입 할 수 있습니다. 핵심 데이터 파일은 파일의 본질이며 .xcodedatamodel 파일이 프로젝트간에 동일하면 파일을 복사 할 수 있으며 작업 할 수 있습니다. –

+0

감사합니다 :) 이것은 도움이됩니다 – Adhamox

3

가능한 일입니다.

http://www.mac-developer-network.com/columns/coredata/may2009/

난 그냥 CSV 부분이 작동하는 방식을 변경하고 모델을 변경했다 : 나는 여기에 코드를 사용하여 CSV 파일에서 읽을 수있는 데스크톱 응용 프로그램을 만들었다.

  • 모델 빌더의 모델을 복사하여 iPhone 모델에 붙여 넣었습니다. ("그리드"영역을 클릭하고 모두 복사를 선택했습니다.)
  • 그런 다음 생성 된 데스크톱 응용 프로그램 (이 응용 프로그램의 폴더에서 응용 프로그램 지원에서 찾은) sqlite 데이터베이스를 가져 와서 리소스 폴더에 넣습니다.
  • 시동시, applicationDidLaunch 메서드에서 sqlite를 iPhone의 문서 폴더에 복사하는 코드를 만들었습니다 (아직없는 경우). resources 폴더에있는 것이 좋지 않을 수도 있습니다. 데이터베이스를 읽기 전용으로 사용하더라도 코어 데이터는 데이터베이스에 무언가를 쓸 수 있습니다. 이것에 대해서는 확실하지 않습니다 ..
  • 내 Core Data의 documents 폴더에 sqlite 파일을 사용했습니다.

데스크톱 및 iPhone 핵심 데이터 sqlite 파일은 정확히 동일한 형식 인 것 같습니다. 동일한 데이터 모델을 가지고 있다면 한 sqlite 파일을 다른 애플리케이션 (iPhone에서 iPhone으로도)으로 전송할 수 있습니다. 다른 응용 프로그램에서는 NSXMLParser를 사용하여 Core Data sqlite 파일을 만든 다음 Simulator를 사용하여 iPhone에서 다른 응용 프로그램으로 전송했습니다.

+0

네바다에게 너무 감사드립니다.이 솔루션은 초보자이기 때문에 약간 복잡하지만 개념을 분명히했습니다. – Adhamox

0

네가 원하는대로 데이터 소스를 사용할 수 있습니다. 다른 제안은 좋은 것입니다. 앱에서 사용하려는 것과 동일한 관리 객체 모델 (.xcdatamodel)을 만듭니다. 파일의 데이터를 읽고 관리 대상 객체의 새 인스턴스를 만들어 파일에서 채 웁니다. 그런 다음 저장하고 iPhone Simulator에서 번들로 들어가서 복사하십시오. 여기에는 필요한 모든 형식의 메타 데이터가 모두 포함되어 있다는 보너스가 추가되었습니다. 개체 모델과 관리되는 개체 클래스를 복사하면 좋은 결과를 얻을 수 있습니다.

실제로 읽기 전용으로 설정하고 설치시 사용하는 경우 완성 된 응용 프로그램 번들 (Applications/{SIGNATURE}/Myapp.app 아래)에 설치됩니다. . 이 데이터베이스를 편집하거나 사용자가 저장할 수있게하려면 사용자 데이터베이스가있는 응용 프로그램/{SIGNATURE}/Documents 디렉토리로 복사하는 것이 좋습니다.

관련 문제