2011-11-16 4 views
1

캠퍼스와 테이블 뷰에 모든 건물이있는 응용 프로그램을 작성하고 있습니다. 건물을 클릭하면 위도, 위도, 건물 이름 및 건물의 이미지와 같은 정보가 검색됩니다.iPhone 응용 프로그램 용 데이터 저장소

제 질문은이 데이터를 저장하는 가장 좋은 방법이라고 생각합니까? 해야 sqlite3 데이터베이스 또는 어쩌면 코어 데이터를 사용합니까? Sqlite3은 지금 당장 기대하고 있습니다. 저는 SQL에 다소 익숙합니다. 모든 제안을 부탁드립니다.

답변

5

CoreData는 SQlite를 사용합니다. 학습에 익숙하다면, 애플과 관련된 모든 것들 (아이폰, ipad, 아이팟 터치, MacOS X 모두 지원)이 있기 때문에 최선의 선택이 될 것입니다.

CoreData 사용 방법에 대한 책과 예제가 많이 있습니다. 또한 CoreData는 업데이트를 처리하여 데이터베이스를 효율적으로 처리 할 수 ​​있습니다.

CoreData를 사용하려면 SQL 행을 작성할 필요가 없습니다. API에 의해 모두 완료되었습니다.

+4

나는 그것을 더 강하게 넣었습니다. 비 Apple 플랫폼 * 또는 *에 대한 이식성에 대한 매우 구체적인 필요가 없다면, SQL을 배우고 싶다면 SQLite는 Core Data에 비해 시간 낭비입니다. – bbum

+0

감사합니다. 더 자세히 살펴 보겠습니다. 나는 각 건물에 대한 모든 정보를 취하여 테이블에 배치하는 펄 스크립트를 작성할 수 있기 때문에 sqlite3에 기대고 있었다. CoreData를 사용하는 것이 쉬운 지 여부는 확실하지 않습니다. 나는 CoreData로 조금 어지럽 혔고 사용하기가 매우 쉽고 친숙합니다. – ericlvb

+0

CoreData에 대한 가져 오기 루틴을 작성할 수 있지만 일반적으로 응용 프로그램 내에서 가져 오기 루틴을 수행해야합니다. 기본 CoreData의 SQlite 데이터베이스에 직접 액세스하는 것은 권장되지 않습니다. – tobyc

-2

좋아, 그래서 코어 데이터를 사용하여 이렇게 좋은 방법을 알아 냈다. 엔티티와 그 속성으로 핵심 데이터 모델을 만들었습니다. 엔티티 및 그 속성은 테이블 및 해당 열에 해당합니다. 나는 그것을 실행하고 빈 sqlite 파일을 만들었습니다. 당신은이 파일을 찾을 수 있습니다 문서

/

/사용자/[이름]/라이브러리/응용 프로그램 지원/아이폰 시뮬레이터/5.0/응용 프로그램/[일부 긴 HEX 번호]를 여기에서 다음과 같이 입력하여 sqlite 파일과 내용을 열어 볼 수 있습니다.

> sqlite3 [name of file].sqlite 
> .schema 

.schema는 테이블과 열을 표시합니다. 코어 데이터가 sqlite 데이터베이스를 만들면 Z [entity] 테이블과 Z [attribute] 테이블을 호출하고 entity는 엔티티 이름이고 attribute는 속성 이름입니다. 그래서 테이블과 모든 속성 앞에는 Z가 붙습니다.

나는 모든 정보를 모아서이 데이터베이스에 저장하는 스크립트를 작성했다.이 데이터베이스는 내가 발견 한 디렉토리에 다시 넣었다. 이것이 내가했던 것과 똑같은 문제를 겪고있는 누군가를 도울 수 있기를 바랍니다.

코어 데이터를 SQLite를 통해 사용하는 것이 좋습니다. 핵심 데이터를 사용하는 것이 훨씬 쉽습니다.

업데이트 : 데이터베이스를 초기화하고 초기화 후에 변경하지 말아야합니다.

+0

제발하지 마세요. 기본 핵심 데이터 데이터베이스에 액세스하는 것은 훌륭한 생각입니다. Apple은 언제든지 실제 구현을 변경할 수 있으므로 앱이 실패합니다. 실제 Core Data 메소드를 사용하여 데이터를 생성하면됩니다. – sosborn

+0

이것은 디버깅에 유용하며, 몇 가지 표준 데이터를 한 번 초기화 할 수는 있지만 사용하지 않아야합니다. –

+0

필자의 경우, 각각 다른 속성을 가진 230 개의 건물 데이터를 포함하는 테이블을 초기화해야했습니다. 그 후 데이터베이스에는 아무 것도 변경되지 않으므로 문제가 될 수있는 방법을 알지 못합니다. Apple은 기본 데이터베이스에 직접 액세스하지 않고 Core Data를 사용하지 않고 엄청난 양의 데이터를 저장하는 프로세스를 자동화 할 것을 어떻게 기대합니까? – ericlvb

관련 문제