2010-08-02 4 views
11

이것은 핵심 데이터에 대한 질문보다는 Apple의 디자인 결정에 대한 철학적 질문입니다.왜 코어 데이터를 미리 채워 넣기가 어렵습니까?

전 세계에서 왜 미리 채워 넣기가 어려운 모델 시스템을 사용하는 것이 유용한가요? 이점은 무엇입니까? 나는 당신이 당신의 프로그램이 sqlite 파일을 생성하고 그것을 수동으로 편집하게 할 수 있다는 것을 알고 있지만, 내가 말할 수있는 한 당신은 어떤 관계가 있다면 그것을 할 수 없다.

이 점을 레일에 사용 된 MVC 패러다임과 비교해 볼 수 있습니다. 레일의 모델은 코어 데이터와 비슷한 수준의 추상화를 제공하지만, 수동으로 (또는 스크립트를 통해) 데이터베이스에 원하는 것을 입력 할 수도 있습니다.

코어 데이터 문제는 다음과 같습니다. 레일이 여러 가지 편리한 방법을 유지하면서 데이터베이스에서 우수한 모델 추상화를 가질 수 있다는 것을 증명하는 것으로 보이기 때문에 가능한 장점은 그 기능을 제거하는 것입니다 제공? 핵심 데이터가 어떻게 든 더 효율적입니까? 미리 채우기에 포함 된 어려움은 다른 디자인 선택의 부작용 일 뿐이고, 그렇다면 왜 사전 채식을 고려하지 않았는가?

(나는 이러한 선택 뒤에 추론에 진정으로 관심이 있어요, 내 게시물을 제안 할 수 있지만, 정말 논쟁은 "코어 데이터 대 레일에서 모델"찾는 게 아니에요 면책 조항.)

답변

11

코어 데이터가 이 아니기 때문에 데이터베이스입니다. 이 그래프는 디스크에 지속되는 객체 그래프이며 이러한 지속성 형식 중 하나는 데이터베이스입니다. 즉, 역 PoV로보아야합니다.

핵심 데이터는 해당 영구 저장소에서 개체을 검색하여 다시 저장하는 데 최대한 빨리 설계되었습니다. 이것의 한 가지 부작용은 영구 형식이 목표를 더 빨리 만들고 다른 것과 호환되도록 최선을 다하는 것입니다. 따라서 SQLite 파일의 내부 구조는 호환성이 아닌 성능을 목표로합니다.

사전 채우기에 대한 의견은 Core Data가 폐쇄 루프 시스템으로 설계되었다는 것입니다. 핵심 데이터를 사용하여 데이터 파일을 쉽게 채울 수 있습니다. Oracle Data를 CSV 형식으로 변환하는 스크립트를 작성하는 것보다 Core Data SQLite 파일을 채우는 것이 더 어렵지 않습니다.

코코아 및 코어 데이터에 머물러 있다면 전혀 어렵지 않습니다. 명령 줄 앱을 작성하거나 앱을 수정하고 데이터를 가져옵니다. 코코아 프로그래머의 PoV에서, 그것은 단지 몇 분 밖에 걸리지 않는 사소한 작업입니다.

+0

데이터베이스 ("디지털 형식의 일반적으로 하나 이상의 용도로 구성된 데이터 모음")처럼 보입니다. 어쨌든, 그의 질문 중 어떤 것도 당신이 Core Data라고 부르는 것에 근거하지 않는 것처럼 보였습니다. 그는 처음에는 그것을 "모델 시스템"이라고 불렀습니다. – Ken

+2

코어 데이터 인 "폐쇄 루프 시스템"에서도 사전 채우기가 일반적인 작업입니다. 그렇게하지 않고이 시스템을 만드는 이유는 무엇입니까? 또는 Apple이 자체적으로 만들고 싶지 않은 경우 라이센스 계약에 Core Data 스키마의 역 엔지니어링을 금지하는 조항이있는 이유가 있습니다. 따라서 진취적인 개인이 직접 이러한 도구를 작성할 수 있습니까? –

+2

@Evan Cordell - Apple은 부분적으로 미리 채우기를위한 도구를 만들지 않았습니다. 왜냐하면 그렇게하기가 쉽기 때문입니다. 내 대답보기 : http://stackoverflow.com/questions/2248363/portability-of-core-datas-sqlite-file-between-os-x-and-iphone-os/2248463#2248463 여기 : http :// /stackoverflow.com/questions/1264382/how-do-i-initialize-a-store-with-default-data-in-a-coredata-application/1266588#1266588. 심지어 iTunes U에서 내 iPhone 과정의 비디오에서 ~ 15 분 안에이 작업을 수행하는 방법을 보여줍니다. http://deimos.apple.com/WebObjects/Core.woa/Browse/matcmadison.edu.3989485784.03989485786 –

관련 문제