저는 다음과 같은 형식의 코드베이스에서 경고를 없애기 위해 노력하고 있습니다.
Entity.relationship should have an inverse.
일반적으로 우리 코드는 이러한 역을 통해 도달하지 않지만 어쨌든 넣는 것이 좋은 생각처럼 들립니다.
내 질문은 내가 이것을 어떻게 할 것인지에 관한 것입니다.
경량 마이그레이션을 통해 이러한 변경을해야합니까? 즉, 다른 xcdatamodel을 만들어야합니까?
주어진 데이터 모델에 대해 이미 여러 버전 / 마이그레이션이있는 경우 어떻게해야합니까? 예를 들어 ReportsDataModel이 있다고 가정합니다. 그 아래에는 ReportsDataModel1, ReportsDataModel2 및 ReportsDataModel3이 있습니다. XCode 7이 각 데이터 모델에 대해 동일한 경고를 표시하는 것 같습니다. 따라서 ReportsDataModel4 로의 경량 마이그레이션에서 수정하면 이전 경고가 제거되지 않는 것 같습니다.
이 문제를 해결하기 위해 권장되는 방법은 무엇입니까?
-아르 준
우선, Xcode에서 요구하는 역 관계를 구현해야한다는 것이 맞을 것입니다. 좋은 데이터베이스 관행이며, 사용하지 않는 경우 초과 관계를 사실상 무시할 수 있습니다.
예, 간단한 마이그레이션 을 수행 할 수 있어야 합니다 . 즉, 새 데이터 모델을 만들고 Xcode가 변경 사항을 추론하도록 할 수 있습니다. 여기에서 Apple 은 경량 마이그레이션이 관계 추가를 지원 한다고 말합니다 .
두 번째 질문과 관련하여 사실, 다른 데이터 모델을 생성해도 이전 모델의 경고가 실제로 해결되지는 않습니다. 경량 마이그레이션 프로세스를 계산할 수 있도록 이전 모델을 Xcode에 그대로 두어야합니다. 모델을 지우고 사용자가 해당 모델을 사용하는 이전 버전에서 업데이트하면 데이터가 손상됩니다. (그러나 특정 데이터 모델이 포함 된 앱 버전을 게시하지 않은 경우 해당 데이터 모델을 삭제할 수 있습니다.)
그러나 역 관계 경고를 완전히 억제 할 수 있습니다 .
Build Settings
탭을 클릭 하십시오.MOMC
.Suppress momc warnings on missing inverse relationships
합니다.이전 모델에서만 경고를 제거하는 방법에 대한 편집 : 이 질문 은 이전 데이터 모델을 Xcode에서 이동하여 다른 곳에 배치하고 컴파일 타임에 파일을 다시 복사하기 위해 파일 복사 작업을 빌드 단계에 추가 할 수 있음을 제안합니다. . 이렇게하면 파일과 관련없는 경고가 방해를받을 수 있습니다. 덜 "해키"솔루션이 없어 죄송합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다