2011-08-25 2 views
0

DML 문에 대한 응용 프로그램에서 CoreData를 사용하고 있으며 모든 것이 정상입니다. 그러나 행 개수 등의 간단한 쿼리에 NSFetchedResultsController를 사용하지 않으려합니다.fmdb에서 CoreData 테이블에 액세스

나는 fmdb를 사용하기로 결정했으나 SQL을 작성하기 위해 실제 테이블 이름을 알지 못합니다. 엔티티와 테이블 이름이 일치하지 않습니다. 나는 심지어 텍스트 편집기로 .sqllite 파일 내 보였지만, 한 희망도 : FMResultSet *의 RS = [getSchema DB를] 모든 행

어쩌면 내 문제에 더 나은 솔루션이있다

을 반환하지 않습니다? 사전에

감사

답변

0

코어 데이터는 Z_으로 모든 SQL 이름을 접두사. SQL 명령 행 도구를 사용하여 지속적 저장 파일을 점검하여 사용 된 이름을 확인하십시오.

그러나 매우 복잡하고 취약한 솔루션입니다. 핵심 데이터 스키마는 문서화되지 않았으며 핵심 데이터가 직접 SQL 액세스를 지원하지 않으므로 경고없이 변경됩니다. 오류가 저장소 파일에 직접 액세스 할 가능성이 있으며 API가 다음 업데이트 될 때 솔루션이 임의로 중단 될 수 있습니다.

핵심 데이터 API는 원하는 기능을 제공합니다. 나는 fetches on a specific value이 NSExpressionDescription을 사용하여 함수를 수행하는 인출 요청을 사용한다. 이를 통해 카운트, 최소값, 최대 값 등과 같은 정보를 얻을 수 있습니다. NSFetchedResultsController에 관계없이 이러한 페치를 생성하고 사용할 수 있습니다.

핵심 데이터 API는 매우 다양한 기능을 제공합니다. 데이터 솔루션에 대한 API 외부를 바라 보는 경우 API에서 무언가를 놓친 가능성이 있습니다.

+0

시도해 보겠습니다. – Elnur

관련 문제