나는 NSManagedObject
의 서브 클래스로 표현 코어 데이터 객체, Account
을 가지고 :iOS - 핵심 데이터 모델이 메일 프레임 워크와 충돌합니까?
@interface Account : NSManagedObject
나는 MessageUI.framework
그래서 내가 작성 이메일 뷰 컨트롤러를 얻을 수 있습니다 추가 할 때 내 전체 응용 프로그램은, 그러나, 잘 개발하고있다 모든 지옥은 느슨해집니다. 응용 프로그램 링크 및 컴파일 괜찮아요, 잘 실행됩니다. 그때까지는 이전에 작업 한 Account
개체와 인터페이스를 시작하기 전까지는 그 후, 나는이 받기 시작 :
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: '"Account" is not a subclass of NSManagedObject.'
*** First throw call stack:
(0x202b012 ... 0x2385)
libc++abi.dylib: terminate called throwing an exception
: 지금, 나는이 충돌을 일으키는 MessageUI.framework
의 일부 클래스가 있음을 추측하고있어
// we need to insert a new account
Account *newAccount = [NSEntityDescription
insertNewObjectForEntityForName:[Account entityName]
inManagedObjectContext:self.managedObjectContext];
,하지만 난 몇 가지 질문이 있습니다
이- 앱을 컴파일하고, 더 컴파일시 이름이 framew에
- 의 다른 구성 요소를 충돌하지 잘 실행 ork은 접두사 - 네임 스페이스 (예 :
MFMailComposeViewController
) 인 것처럼 보이므로 이론 계정이MFAccount
이 아니어야합니까? - 심지어
#import <MessageUI/MessageUI.h>
또는 약간 더 가늘게 보이는#import <MessageUI/MFMailComposeViewController.h>
(후자는Account
의 정의가 없음)을 볼 수 없으므로 가능한 충돌이 왜로드 될지 잘 모르겠습니다. - 코어 데이터 클래스를 다시 생성하고 모든 시뮬레이터 설정을 재설정했지만 여전히 주사위를 다시 설정하지 않았습니다.
- 프로젝트 및 구성 설정에서 Framework를 제거하면 즉시 문제가 해결됩니다.
NSManagedObject 하위 클래스의 이름을 바꾸려고 했습니까? – geraldWilliam
@geraldWilliam : 상황을 해결할 것이라고 생각하지만, 필자는 필요하지 않은 경우 내 모델에 네임 스페이스를 사용하지 않을 것입니다. 모든 조사가 막 다른 골목으로 이어진 것처럼 내가 놓친 것을 알고 싶기 때문에이 질문을 정말로 물었습니다.이 상황이나 다른 상황이 다시 나타나면, 해결할 수 있기를 바랍니다. 직감으로. – Josh
물론 이치에 맞습니다. 그것은 내가 관리 대상 객체 서브 클래스 "Message"의 이름을 비슷한 상황으로 만들었을 때 방금 이름을 변경하고 문제가 해결되었다는 것입니다. 앞으로이 문제를 피하기 위해 접두사가있는 모든 관리 대상 하위 클래스의 이름을 지정하는 것입니다. – geraldWilliam