2009-08-27 3 views
14

엑스 코드에서 프로젝트를 만들기위한 너무 많은 옵션이 있습니다저장에 사용하는 코어 데이터 - 기반 및 윈도우 기반 응용 프로그램 탐색에 - 아이폰 우리가 탐색 기반 응용 프로그램/윈도우 기반의 응용 프로그램을 선택하면

그러나

우리가 할 수있는 추가 옵션 - 스토리지 용 코어 데이터 사용을 참조하십시오.

이에 대한 간단한 설명이 필요합니다.

새로운 기능이 있습니까?

답변

34

Jergason이 쓴 것을 자세히 설명합니다. 코어 데이터는 Java 세계에서 Hibernate와 유사한 객체 관계형 매핑 (ORM)입니다. 코드에서 SQL 또는 .plist 파일과 같은 데이터를 저장하는 실제 메커니즘을 추상화합니다. 귀하의 코드는 객체를 가져오고 업데이트하고 유지하기 위해 일관된 객체 지향 프레임 워크를 다루면됩니다. 핵심 데이터는 ACID 트랜잭션의 일부 수준을 지원하지만 2 단계 커밋은 지원하지 않습니다. iPhone에서 Core Data의 기본 설정은 sqlite 데이터베이스를 ORM 레이어로 래핑합니다.

코어 데이터를 사용할 때의 흥미로운 점 중 하나는 데이터 모델을 시각적으로 디자인하고 모델 클래스를 생성하는 도구입니다. 대형 모델을 사용하는 경우 모델 클래스를 손으로 코딩 할 때 많은 시간을 절약 할 수 있습니다.

코어 데이터의 또 다른 흥미로운 이점은 데이터베이스를 한 모델 버전에서 다른 버전으로 마이그레이션 할 수 있다는 것입니다. iPhone 모델에서는 앱의 한 버전에서 다음 버전으로 데이터 모델을 수정하고자 할 때 매우 중요합니다. Core Data는 많은 양의 마이그레이션 코드를 작성하지 않고도 이전 모델의 영구 데이터를 새 모델로 마이그레이션하는 매우 간단한 방법을 제공합니다. 마이그레이션 맵을 정의하고 앱 델리게이트에 몇 줄의 코드를 추가하면 모든 것이 변환됩니다.

iPhone의 핵심 데이터는 모바일 환경을 위해 설계되었습니다. 테이블의 모든 행을 배열로 가져 오는 경우 실제로 모든 것을 메모리로 가져 오지 않습니다. Apple이 NSArray처럼 보이는 객체 인 faulting 배열을 생성합니다. 배열의 다양한 요소에 액세스 할 때 코어 데이터는 쿼리가 아니라 사용중인 엔티티 (행)를 가져옵니다. 메모리를 절약하고 앱 실행 속도를 높입니다.

올인 올 (All-in-all) 전체 모드는 Hibernate만큼 풍부하지는 않지만이 환경에는 충분합니다.

16

핵심 데이터는 본질적으로 모델을 시각적으로 구축하는 방법으로, 모델의 인터페이스 작성기입니다. 모델 클래스를 나타내는 엔티티를 작성하고 모델 클래스 간의 관계를 정의합니다. 주소 클래스의 인스턴스가있는 Person 클래스를 코딩해야하는 대신 끌어서 놓기 만하면 시각적으로 만들 수 있습니다. 그보다 더 많은 것이 있지만, 그것은 내가 생각하기에 차가운 주요 특징입니다.

this Apple 설명서를 참조하십시오.

관련 문제