2012-02-23 5 views
0

의 Blob 또는 SQL에서 텍스트에 수레의 목록을 저장하는 데 의미가 있습니까 미리 계산 된 값 사이의 관계를 매핑하기위한 데이터의 예 :는 내가 아이폰 개발을 꽤 새로운 해요 라이트

예 :

태양 광 패널의 전원 출력에 광 입력을 매핑합니다.

한 스케일은 고정되어 쉽게 계산 될 수있다 (즉, 그것은 0.1 단계로 상승하고, 공지의 시작 및 종료 지점이 있음)

0.0-80.0

다른 스케일이 일부 데이터에 의해 정의된다 나는 텍스트 형식으로 가지고 : + 0000

9.80293622028191E + 0000 9.82985159414126E + 0000 9.85682155471754E + 0000 9.88384617060865E + 0000 9.91092551045114E + 0000 9.93805964292038E + 0000 9.96524863673053E + 0000 9.99249256063480E , 1.00197914834255E + 0001, 1.00471454739344E + 0001, 1.00745546010324E + 0001 등

전화로 다른 변수에 대한 선을 그릴 수 있습니다. 최고의 내가 쉽게 업데이트 할 수 있도록 부동 소수점 값의 배열을 저장하는 방법 - -도 등을 쉽게로드

텍스트 형식의 전체 데이터는

질문입니다 (데이터 라인 당 32킬로바이트 약) 약 4MB입니다 디스플레이를 위해?

나는 하나의 값을 골라 낼 필요가 없다 - 주어진 라인 전체에 대해 항상 전체 목록이 필요할 것이다 - 그래서 그것을 하나의 데이터 객체로 저장하는 것이 좋다. 파일을 텍스트로 저장 한 다음 업데이트 할 때 파일을 덮어 쓸 수 있습니다. 그러나 - 나는 다른 데이터에 대해 SQL Lite DB가 필요할 것이고 이것은 데이터를 저장하는 데 더 현명한 것 같다.

SQL에서 float 데이터 형식을 사용하는 것은 상당히 어려운 방법 인 것 같습니다. 모든 선택 항목이 조인이되도록 항상 전체 값 집합을 원할 것입니다. 주문 정보를 저장하여 올바른 순서로 다시 가져올 수 있습니다.)

전체 배열을 문자열로 푸시하고 텍스트로 저장하는 것이 합리적입니까? 또는 NSArray를 BLOB 필드로 직렬화하고 나중에 다시 구성 할 수있는 적절한 방법이 있습니까?

는 ----- 편집 ----------

그것은 SQLite는 DB에 수레의 몇 천 행이 전화 자체에 대단히 느린 것으로 나타났다. 시뮬레이터에서는 괜찮지 만 전화를로드하는 데 20 초 정도 걸릴 수 있습니다. 이 라운드를 얻기 위해이 데이터를 플랫 텍스트 파일에 넣었고 NSArray에로드 할 때 수레로 변환합니다.

+0

데이터를 체계적으로 정리하는 방법을 잘 모르겠습니다. 그 "나는 항상 주어진 라인에 대한 전체 목록이 필요합니다"부분은 내가 꽤 못합니다. 당신의 수치 데이터가 M 개의 라인을 가지고 있고, 라인마다 N 개의 값을 가지고 있으며,이 데이터를 라인 단위로 액세스한다는 것을 의미합니까? (IE는 그것의 look up table). –

+0

예 - 특정 종류의 키를 사용하여 주어진 데이터 행을 가져올 수 있어야합니다. 데이터 라인은 드로잉 루틴에 전달하기 위해 NSArray에 들어갈 float 값의 정렬 된리스트입니다. –

답변

1
당신은/직렬화 호출하여 배열를 unserialize 할 수

:

- (NSArray *)componentsSeparatedByString:(NSString *)separator; 

및 그러나

- (NSString *)componentsJoinedByString:(NSString *)separator; 

를, 내가 추천 할 것 중 하나

1) 파일로 배열을 저장 (writeToFile, arrayWithContentsOfFile)

이상

2) 값으로 기존 SQLite-Database 값에 값을 쓰십시오. 내가 맞으면, 조인은 필요 없다.

SELECT y FROM data LIMIT start_value, end_value 
+0

# 2와 동의합니다. 집합을 제외하고 값을 필요로하지 않더라도 개별적으로 저장하는 것은 sqlite에 대한 가장 불쾌한 선택이며 데이터의 여러 조각 (아마도 하위 집합 또는 역순)이 필요한 경우 가장 융통성이 있습니다. – kevboh

+0

각 값의 출처는 어느 데이터 라인인지를 결정하기위한 키가 필요 합니다만, 이는 충분히 쉽습니다. 또한 주문 키가 필요합니까? 값이 위아래로 변경 될 수 있으므로 값에 따라 정렬하면 원래 순서가되지 않습니다. SQLite는 삽입 한 순서대로 행을 다시 돌려 줄 수 있습니까? 나는 각 행에 대한이 메타 데이터가 문자열로 변환하는 것보다 디스크에서 더 작을 것이라고 생각합니다. - 이동하는 방법 일 수 있습니다. –

+0

순서가 보장되는지는 알 수 없지만 내 경험상 x를 키로 추가하지 않아도 작동합니다. –

관련 문제