2011-02-24 4 views
3

sqlite 데이터베이스의 데이터를로드하고 거기에서로드 한 값을 사용자 정의 클래스의 인스턴스 변수에 저장 한 다음이 클래스를 가변 배열에 추가합니다. , 그 다음 나는 테이블 뷰에서 사용하기 위해 뷰 컨트롤러의 인스턴스 변수에 할당합니다.사용자 정의 배열을 plist에 저장/다시로드하는 방법

하지만이 배열을 응용 프로그램의 첫 번째 실행시 문서 디렉토리의 .plist 파일에 저장하면로드 할 때 전체 객체를 가져올 수 있으므로 데이터 베이스.

이 방법이 더 나은 옵션입니까? 만약 그렇다면, 누군가 내게 plist 파일로서 내 사용자 정의 클래스의 배열을 저장할 수있는 몇 가지 코드를 제공 도와주세요 수 있을까요? 나는 웹상에서 많은 샘플 코드를 발견했지만 그 중 어느 것도 제대로 작동하지 않는다.

내가하고 싶은 다음 my_data.plist 파일의 존재

  • 확인.
  • 존재하는 경우 배열로 읽습니다.
  • 그렇지 않은 경우 sqlite db의 데이터를 배열로 읽어들입니다.
  • .plist에이 데이터를 저장하면 나중에 더 빨리 읽을 수 있습니다.

감사합니다. 저에게 줄 수있는 도움을 주셔서 감사합니다.

+0

실행하는 샘플 코드가 어떤 방식으로 올바르게 작동하지 않았습니까? 코드는 무엇입니까? 네가 그것을 도망 칠 때 무슨 일이 일어난거야? – occulus

답변

3

그것은 아마 출시에 데이터베이스에서 값을 얻을 빠른 단지에있을 것입니다. 데이터베이스에서 가져 오는 데 사용해야하는 쿼리가 실제로 느린 경우를 제외하고는 거의 모든 값을 데이터베이스에서 가져 오는 것보다이 값을 포함하는 plist를 구문 분석하는 데 더 많은 비용이 소요됩니다.

개체를 디스크의 plist에 저장하면 개체를 디스크에 두 번 쓰고 디스크에서 두 번 읽으므로 실제로 프로그램의 성능이 저하됩니다. 또한 버그 나 충돌이 발생할 경우 plist와 데이터베이스간에 불일치가 발생할 수있는 기회를 소개합니다.

즉,이 사실을 증명할 수있는 유일한 방법은 두 옵션을 구현하고 프로파일 링하고 실제 수치를 비교하는 것입니다. plist를 읽거나 쓰는 방법에 대해서는 위의 @ occulus의 링크를 확인하십시오. 앱 프로필을 만들려면 Instruments

+0

감사합니다. 링크를 살펴보고 테스트 해 보겠습니다. –

관련 문제