2011-08-19 2 views
1

현재 내 iPhone 응용 프로그램에 데이터를 저장하는 가장 좋은 방법을 찾고 있습니다. 응용 프로그램을 열고 닫을 때까지 지속되는 데이터 NSKeyedArchiver를 사용하여 보관을 조사한 결과 작동에 성공했습니다. 그러나 여러 개체를 저장하려고하면 저장할 때마다 계속 덮어 씁니다. (기본적으로 사용자는 원하는 목록을 만들고 목록을 저장하고 목록을 몇 개 더 만들고 목록을 모두 저장 한 다음 나중에 다시로드 할 목록을 선택할 수 있습니다. 날짜).Objective-C 데이터 저장을위한 최선의 선택

나는 SQLite, Core Data 또는 .plists를 사용하여 시간이 지남에 따라 계속 유지되는 여러 데이터 배열을 저장하는 것에 대해 들어 봤다. 누군가 내 데이터를 저장하는 가장 좋은 방향으로 나를 가리킬 수 있습니까? 감사!

답변

2

코어 데이터는 초기 학습 곡선을 넘어 서면 매우 강력하고 사용하기 쉽습니다. clicky

+1

이미 핵심 데이터를 사용하도록 설정되지 않은 프로젝트를 만들었습니다. 기존 프로젝트에서 설정하기가 어렵습니까? 아니면 처음부터 다시 시작해야하며 "코어 데이터 사용"을 선택하고 파일을 복사해야합니까? – Plaidfox

1

CoreData의 쉽고 강력한 대안으로 Objective-C 용 ActiveRecord를 살펴보십시오. https://github.com/aptiva/activerecord

+0

흥미로운 찾기! 나는 아직 이것을 보지 못했다. –

0

CoreData 시작하기에서 this tutorial by Ray Wenderlich을 확인하고 싶습니다. 그것의 짧은 그리고 CoreData의 기초.

저장하려는 데이터의 양이 적은 경우 기본적으로 plist 만보고 싶을 것입니다. 간단한 설정 또는 환경 설정 목록. 이보다 더 큰 것은 성능에 중점을두고 있습니다. iTunesU에는 LinkedIn의 개발자가 plists와 CoreData 간의 성능 메트릭을 설명하는 훌륭한 비디오가 있습니다.

아카이빙은 작동하지만 데이터를 저장하고 검색하는 것은 물론 많은 노력이 필요합니다. 그래서 나는 거기에 가지 않을 것이다. 나는 CoreData를 사용할 것이다. 그것의 극단적으로 시작하고 당신이 this stack overflow question에있는 목표를 이해하는 경우에 당신은 당신이 가기 위하여 필요로하는 모두를 알고있다.

1

NSKeyedArchiver와 함께 가고 싶습니다. 문제는 그래프를 올바르게 구성하지 못하는 것 같습니다.

기술적으로 목록의 목록이 있지만 내부 중첩 목록 만 저장하고 있습니다.

"수퍼"목록에 목록을 추가 한 다음 수퍼 목록을 보관해야합니다.

CoreData/SQL은 귀하가 설명한 내용과 조금 비슷해 보입니다.

+0

그래서 내가 보관함에있는 배열을 가져오고, 끝에 새로운 데이터를 추가 한 다음 다시 아카이브하도록 제안 하시겠습니까? – Plaidfox

+0

그 방법 중 하나입니다. 또는 수퍼리스트를 항상로드하고 필요할 때 수정할 수 있습니다. 그런 다음 저장하면 전체 목록을 저장하십시오. – David

+0

지금은 약 16 개의 문자열이있는 가변 배열을 각각 저장하고 있습니다. 이 아카이브 된 데이터가 너무 커지면 메모리 과부하에 대해 걱정해야합니까? – Plaidfox

1

또한 시도해 볼 수 있습니다 framework. 매우 간단하고 사용하기 쉽습니다. ActiveRecord 패턴을 기반으로하며 마이그레이션, 관계, 유효성 검사 등을 사용할 수 있습니다.

CoreData를 사용하지 않고 sqlite3 만 사용하지만 원시 SQL을 사용하거나 수동으로 테이블을 만들 필요가 없습니다.

그냥 iActiveRecord을 묘사하고 즐기십시오.

관련 문제