2012-03-02 5 views
0

어제까지 아이폰에 완벽하게 작동하는 앱이있었습니다. 나는 어제 몇 가지 비틀기를 만들었고 이제는 시뮬레이터에서 작동하지만 아이폰에서는 작동하지 않습니다. "applicationDidFinishLaunching"이 완료된 직후의 오류 메시지가 표시됩니다."번들로 NIB를로드 할 수 없습니다."오류가 있지만 시뮬레이터에는 없습니다.

오류는 다음과 같습니다 'NSInternalInconsistencyException'이유 : '번들에 NIB를로드 할 수 없습니다 :'NSBundle은 ....> RootViewController '' '이상한 것은이

'이름 '(로드) RootViewController라는 xib 파일이 없습니다. 저는 한 달 전에 CategoryViewController로 이름을 바꾸 었으며 어제까지 괜찮 았습니다. 각 viewController에서 "RootViewController"에 대한 참조가 없는지 확인했습니다.

"CTRL + shift + F" "RootViewController"로 검색했는데 내 프로젝트에 여기에 언급 된 파일이 없습니다.

내가하고 있던 조정은 대상 info.plist와 관련이 있었으며 응용 프로그램에 iTunes 파일 공유 옵션을 지원한다고 추가했습니다. 나는 또한 어제 처음으로 "청소"를 실행했다

info.plist

: 여기에 뭔가를 엉망 경우 내의 Info.plist이다.

내 MainWindow.xib 파일에 모든 연결이 있는지 확인하고 기본으로 사용한 원래 샘플 프로젝트와 비교했습니다.

프로젝트가 이전의 스냅 샷으로 되 돌리려고했는데, 그것이 긍정적이었고 이제는 효과가 없다. 내 iPhone 번들이 손상된 것 같습니다. 하지만 내 iPhone에서 앱을 삭제하고 다시 시도한 후에도 똑같은 작업을 수행합니다.

어떻게 디버깅해야합니까? 나는 이미이 문제를 해결하기 위해 10 시간을 보냈으며 실제로 도움이 필요하다.

+0

뷰 아웃렛이 연결되어 있습니까? – CodaFi

+0

나중에 이미지를 지우고 –

+0

을 확인하십시오. 예, CategoryViewController라는 메인보기 컨트롤러가 연결되었습니다.어제 마지막으로 작업 한 이후로 변경된 사항은 없습니다. 왜 시뮬레이터에서 작동하고 iPhone에서는 작동하지 않습니까? 번들 문제 또는 뭔가 설정과 같은 것 같아요 ... – jroyce

답변

0

이것은 첫 번째 viewController를 RootViewController로 리팩토링하고 이름을 변경하여 해결되었습니다. 이야기의 도덕은 RootViewController의 이름을 변경하지 않는다는 것입니다. 쉽게 변경되지 않는 참조가 내장되어 있습니다. 다른 이름을 사용할 필요가 없습니다. 내가 이것을 한 후에, 모든 것이 다시 일했습니다.

0

Xcode 템플릿은 주 nib 파일을 지정하는 Info.plist 파일을 생성합니다.

- 기본 nib 이름은 "MainWindow"입니다.
- 해당 nib 파일의 기본 버전에는 "RootViewController"라는보기를 참조하는 탐색 컨트롤러가 포함되어 있습니다.

그러나 iPhone 또는 iPad의 경우 변형이 각각있을 수 있습니다. 그 파일들은 ~ iphone이나 ~ ipad가 끝에 추가되었습니다. 시스템은 자동으로 접미사를 선택합니다.

RootViewController를로드하려고했던 이유 때문에 다른 nib 파일을 가져올 수있었습니다.

또한 RootViewController를 참조하는보기 또는보기 컨트롤러가있는 경우, OS는이를로드하려고 시도합니다. (그것이 열리면 nib 파일의 거의 모든 것을 인스턴스화합니다.)

+0

고맙습니다. 한 가지 일은 오늘 MainWindow.xib 파일을 처음 열었습니다. 나는 결코 전에 그것을 보지 않았다. 그 후 내 문제가 시작되었습니다. 내가 뭔가를 인스턴스화하고 지금 그것을 취소해야한다고 생각하고 있습니다. 내 연결이 무엇인지 알 수 있도록 원본 게시물에 스크린 샷을 게시했습니다. 연결되지 않은 rootViewController가 있습니다. 그것이 어떤 문제를 일으킬 수 있습니까? – jroyce

+0

나는 이것에 대한 해결책을 찾기 위해 필사적이다. 심지어 이전 버전으로 돌아가려고했는데 여전히 작동하지 않습니다. WTF !!! – jroyce

+0

이것을 우회하는 방법이 있습니까? 후드에서 발생하는 것을 방지하기 위해로드 될 내용을 프로그래밍 방식으로 설정하려고합니다. – jroyce

관련 문제