내 모델이 각각 어떤 모델을 기반으로하고 있는지보고 싶습니다. Xcode에서이 작업을 수행 할 수있는 곳을 찾을 수 없었습니다. 새 모델 버전을 만들고이를 기반으로하는 모델을 선택하면 ("편집기/모델 버전 추가 ..."를 사용하고 "모델 기반"드롭 다운 메뉴를 사용하여 이전 모델을 선택하면) 선택 사항을 보거나 변경하십시오.코어 데이터 모델이 표시되거나 변경되는 것을 기반으로 모델을 모델링 할 수 있습니까?
.xcdatamodeld 및 .xcdatamodel 파일은 패키지이므로 "/ 패키지 내용보기"를 마우스 오른쪽 버튼으로 클릭하여 검사 할 수 있습니다. .xcdatamodel 파일은 "내용"이라는 이름의 XML 파일이 포함되어 있지만 이전 모델의 버전이없는 것 : 나는 또한 프로젝트의 .xcodeproj 파일에 보였다 (도 패키지) 발견
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1811" systemVersion="11G63" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
<entity name="Settings" syncable="YES">
<attribute name="filterOrderArray" optional="YES" attributeType="Transformable" syncable="YES"/>
</entity>
<elements>
<element name="Settings" positionX="160" positionY="192" width="128" height="60"/>
</elements>
</model>
project.pbxproj 파일이 포함 :
다시/* Begin XCVersionGroup section */
CFE0A83E164F6CF40000C765 /* Filters.xcdatamodeld */ = {
isa = XCVersionGroup;
children = (
CFE0A841164F6D100000C765 /* Filters 1.3.xcdatamodel */,
CFE0A83F164F6CF40000C765 /* Filters 1.2.xcdatamodel */,
);
currentVersion = CFE0A841164F6D100000C765 /* Filters 1.3.xcdatamodel */;
path = Filters.xcdatamodeld;
sourceTree = "<group>";
versionGroupType = wrapper.xcdatamodel;
};
/* End XCVersionGroup section */
, 아니 이전 버전 정보, 그는 그 진수 문자열 만 보인다 엑스 코드/프로젝트 탐색에서 .xcdatamodel 파일의 순서에 의해 결정되는 않는 "children"매개 변수.
는 또한 모델 버전의 이름을 변경하는 것은 (그것이 어딘가에 저장되어 나타내며 버전의 단지 순서 없음) 당신이 그렇게 할 경우 initWithContentsOfURL이 전무 모델을 반환 이전 버전의 연결이 끊어 발견 :
NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
그래서 내가 말할 수있는 한, 모델이 만들어지면 어떤 모델을 보거나 변경할 수 없습니다. 모델 계층 구조를 정리해야하는 경우 효과적으로 다시 시작하고 필요한 각 버전을 다시 만들어야합니다 (적어도 이전 모델에서 엔티티를 복사하여 처음부터 완전히 시작하지는 않음).
고마워요,하지만이 모든 것을 이해합니다. 나는 오랜 시간 동안 내 모델의 새 버전을 만들었습니다. 한 번에 50 가지 버전이있었습니다. 대부분은 다양한 수준의 테스트를 거쳤으며 어떤 모델이 이전 버전을 기반으로했는지 기억하지 못했습니다. 불필요한 버전을 모두 지우고 더 나은 이름으로 바꿔야했습니다. 문제는 모든 모델을 보는 방법이 아니라 모델의 기반 버전과 그 정보가 저장되는 위치를 알려주는 것입니다. – Symmetric
이전 버전을 사용하고있는 앱이 있습니까? 그렇지 않은 경우 다른 버전을 삭제하면 정리할 수 있습니다. 각 버전은 완전한 구조이며 마이그레이션 이외의 다른 버전의 존재에 의존하지 않습니다. – jrturton
와우, 나는 각 버전이 완전한 구조라는 것에 대해 당신과 의견이 맞지 않았지만 "Add Model Version ..."이 무엇인지에 대해 오해 할 수도 있습니다. 현재 선택된 버전이 새 버전으로 복사되고 나중에 모델 기반 모델이 .mom 파일을 컴파일 할 때 또는 마이그레이션 중에 사용 된 것으로 생각했습니다. 방금 테스트를 해봤는데 실제로 복사 된 "모델 기반"버전이고 현재 선택된 모델은 목록에 새 버전을 배치하는 데 사용됩니다. 그게 많이 설명해! – Symmetric