2011-03-12 3 views
1

인터페이스 작성기를 사용하여보기 컨트롤러를 만들고 NSManagedObjectContext를 전달하여 모든 작업을 완벽하게 수행했습니다. 그러나 내가 뭔가를 세우지 않은 것처럼 오류를 계속 받았다.NSInternalConsistencyException 이유 + entityForName : 엔티티 이름에 대해 NSManagedObjectModel을 찾을 수 없습니다.

다른 질문으로는 문제가 해결되지 않았으므로 다른 사람에게 도움이되기를 바랍니다.

IB 대신 하드 코드를 사용한 후 루트 위저우 컨트롤러의보기가 App Delegate 전에 호출되었음을 확인했습니다. 그건 의도 한 명령을 완전히 망 쳤어. NSLog는 지금 무엇이 나 왔는지 보여주었습니다.

여러 번 나는 애플의 (영어의 문법 사용에 대한) 부족함에 의문을 제기한다. iPad의 앱 스토어가 관련 프로그램의 전체 이름을 표시하지 않는 것과 마찬가지로 이는 이러한 일 중 하나입니다.

그렇습니다. NIB를 사용하는 경우 Interface Builder에서 링크하는 대신 addSubview 부분을 하드 코딩하십시오. 링크를 올바르게 연결하더라도 루트보기 컨트롤러를 하드 코딩하십시오. 또는 더 많은 경험을 가진 사람이 다른 솔루션을 게시 할 수 있습니다 ... 튜토리얼을 읽는 사용자가 항상 "할 수있는 한 가지 방법이 필요합니다. the docs "

코어 애니메이션에도 동일한 누락 정보와 링크가 있습니다. 좋아, 이제 나는 애플에 대해 불평하고있다. 이 문제가 해결 되었다면 사과하지만, 필자가 찾은 모든 것은 오타이고 "연결되지 않은"것입니다. 나는 언급 한 모든 것을했으나 여전히 그렇지 않았다. 이것은 매우 혼란 스러웠다.

감사합니다.

+1

애플을 비난하기 전에 나는 당신이'entityForName : inManagedObjectContext :'에 전달한 NSManagedObjectContext가 nil이 아닌지 확인합니다. –

+0

나는이 "질문"을 downvote하지는 않겠지 만, 그것이 설명하는 문제와 해결책은 매우 모호하다. 그렇더라도 다른 사람들이 무슨 일이 일어나고 있는지 정확하게 이해할 수 있도록 세부 사항을 제공하는 것이 좋습니다. – TechZen

+0

MVC 패턴과 일관되게보기 위해 Nib 's를 사용하여 모든 것을로드하려고했습니다. 이 문제와 해결책은 어디에서도 찾을 수 없었습니다. 나는 다른 사람들이 그것을 찾을 수 있고 그것으로 들어가면 도움을 얻을 수 있도록 게시했다. 주된 차이는 내가 하드 코딩하지 않았다는 것이다. 그러나 내 코드는 내가 링크 된 것과 일치합니다 (Nibwise). 나는 여러면에서 어떤 일이 일어 났는지 확신 할 수 없습니다. – fightingshadow

답변

0

I noticed that the root view controller's view was called before the App Delegate...

그건 불가능합니다. 보기가 활성화되기 전에 앱 대표단의 application:didFinishLaunchingWithOptions:이 호출되어야합니다. 전체 디스플레이 창은 앱 델리 게이트가 소유하므로 앱 델리게이트가로드되지 않은 경우로드 할보기 창이 없습니다.

IB, 핵심 데이터 및 여러 유형의보기 및보기 계층 구조가있는 수십 개의 응용 프로그램을 만들었으므로 응용 프로그램 위임 전에보기 부하가 발생하지 않았습니다. 너는 뭔가를 놓쳤다.

오류 :

NSInternalConsistencyException reason +entityForName: could not locate an NSManagedObjectModel for entity name

은 ... 하나는 개체 이름이 잘못 철자 당신의 managedObject 모델이로드되지 않았 음을 의미하거나. 핵심 데이터 스택이로드되지 않거나 잘못 액세스하고있는 것 같습니다.

+0

둘 다 NSLog를 눌렀고 ViewDidLoad의 NSLog가 먼저 호출되었습니다. 나는 그것이 단순히 일어날 것을 본다고 말할 것입니다. – fightingshadow

+0

http://www.iphonedevsdk.com/forum/iphone-sdk-development/11537-viewcontroller-called-before-applicationdidfinishlaunching.html 일반적인 문제 – fightingshadow

+0

그렇다면 버그 신고서를 보내 드리겠습니다. 그것은 일어나지 않아야합니다. 이제, 최상위 뷰의'viewDidLoad'는'didFinishLaunch ... '가 끝나기 전에 호출 될 것입니다. 그러나 didDeLoad가 호출되기 전에'didFinishLaunch ...'가 호출 된 적이 전혀 없습니다. 내 말은, 앱이로드 할 뷰를 어떻게 알 수 있습니까? 보기에서 창을 찾는 방법은 무엇입니까? – TechZen

0

동일한 문제가 있습니다. 기괴한 점은 iOS 5에서는 문제가 발생하고 iOS 6에서는 그렇지 않다는 것입니다.

일부 파고가 발견되면 iOS 5에서 비어있어 (iOS 5에서) 예상 할 때 iOS 6에서 컨텍스트가있는 것으로 나타났습니다 (따라서 오류 메시지). 제 경우에는 문맥을 통해 문맥을 넘겨주고있었습니다. 해결 방법은 컨텍스트가 nil인지 테스트 한 다음 구체적으로 요청한 경우입니다. 트릭을 했어.

iOS6에서 변경된 사항이므로 Apple에서 알고 있던 것이 틀림 없습니다.

관련 문제