2011-01-28 1 views
1

in this thread과 비슷한 문제가 발생하지만 제공되는 솔루션이 제대로 작동하지 않습니다. 나는 긴 설명을 사과하지만 이것은 SO에 대한 나의 첫 번째 게시물이며 완성되고 싶다.문제 iPhone 초기 프로그램을로드하는 중

나는 시뮬레이터에서 잘 동작하는 프로그램을 가지고있다. 그래서

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/....app> (loaded)' with name 'MainWindow'' 

: I 장치에 밀어하려고 할 때 그러나, 나는이 말한다 오류가 XIB를로드하려고은 MainWindow를 호출하지만, 그것을 찾을 수 없습니다. MainWindow라는 XIB가 없기 때문입니다. 첫 번째 XIB I로드는 FrontPage.xib입니다. 템플릿 중 하나를 사용하여이 프로그램을 시작하지 않았으므로 처음에는 MainWindow.xib 파일이 제공되지 않았습니다.

Google 컴퓨터에서 기본 nib 파일 기본 이름을 내 앱 plist에서 수정할 수 있다고 알려줍니다. 그래서 나는 거기에 가서 FrontPage로 바꿉니다. 이제 다른 오류가 발생합니다.

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x12c270> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.' 

저는 여기에 머리털을 내고 있습니다. 해결책을 아는 사람은 누구입니까?

+0

인터페이스 빌더를 통해 nib 파일에서 '보기'콘센트 세트를 설정 한 것처럼 보이지만 File 's Owner에는 'view'라는 인스턴스 변수/신고 된 속성이 없습니다. –

+0

은 FrontPage.xib이며 컨트롤러 펜촉입니까? – Seyther

+0

Bavarious : 예, Interface Builder에서 File 's Owner에 "View"라는보기의 콘센트가 있습니다. 이 코드를 코드의 어느 위치 에든 선언 할 필요는 없습니까? 여기가 iOS 프로그래밍에 익숙하지 않은 곳입니다. :) – Kyle

답변

1

Frontpage.xib가 응용 프로그램의 기본 xib가 될 경우 응용 프로그램을로드 할 수 있도록 해당 xib에 Window 개체와 App Delegate 개체를 만들어야합니다. View Controller를 시작하기 전에 앱과 창을 구성해야합니다. 그렇지 않으면 설명대로 오류가 발생합니다. Window 기반 템플릿을 사용하여 새 프로젝트를 만드는 것이 좋습니다. 자동으로 생성 된 MainWindow.xib를보고 Frontpage.xib에서 모방하려고 시도하십시오.

.. 나는 단지 진실하게 제안 하겠지만 프로젝트에서 MainWindow.sib를 사용하고 Frontpage.xib를 일반 뷰 컨트롤러 xib로 만듭니다. 프로젝트에 새 파일을 추가하기로 선택한 경우 사용자 인터페이스를 선택한 다음 xib보기 대신 응용 프로그램 xib를 선택하면 필요한 항목에 근접하게 설정됩니다.

프로젝트 템플릿은 중요하고 유용합니다. 당신은 항상 그들을 사용해야합니다. Window 기반 템플릿으로 모든 것을 시작합니다. 가장 기본적인 템플릿이며 가장 유연합니다.

+0

이렇게했습니다. 고마워 케니는 앱 템플릿으로 시작하는 법을 배웠습니다. – Kyle

0

IB를 통해 파일 소유자 속성을 설정하여 FrontPage.xib 용보기 컨트롤러가 올바르게 설정되어 있으면 view 속성도 설정해야합니다. Fileowner에서보기로 컨트롤을 드래그하여이 작업을 수행 할 수 있습니다. 오류에서보기에 대한보기 속성을 아직 설정하지 않은 것 같습니다. 인터페이스 빌더에서 펜촉을 열고 연결 속성에서 뷰 연결을 찾으십시오. 파일 관리자의 뷰 아웃렛에 연결해야합니다. 그것을 어디에서나 속성으로 선언 할 필요는 없습니다.

2

보기가 Interface Builder의 "보기"콘센트에 연결되어 있는지 확인하십시오. IB에서 "파일 소유자"를 마우스 오른쪽 버튼으로 클릭 한 다음 뷰의 "보기"콘센트로 드래그하면됩니다. 다음은 제가 작업중인 게임의 일러스트입니다. 오른쪽의 점에서 "보기"로 드래그 된 파란색 선을 확인하십시오.

enter image description here

검사 할 것이다 또 다른 것은 당신의 Info.plist입니다. 펜촉 파일을 호출했는지 확인하십시오. FrontPage 및 FrontPage ****. nib ***.

+0

흠. 이것이 내가 가지고있는 오류를 해결할 수있는 이유를 이해할 수 있습니다. 그러나 혼란스러운 것은 뷰와 File 's Owner가 위에 표시된 프로세스를 통해 올바르게 연결되어 있다는 것입니다. 그리고 plist에있는 제 nib 파일에는 접미사가 없습니다. 다른 이상한 점은 기본 nib베이스로로드하려고 시도 할 때까지이 오류가 발생하지 않는다는 것입니다. 시뮬레이터에서 (존재하지 않는) MainWindow를 내 기본 펜촉으로 선택한 경우 FrontPage.xib 로드가 잘됩니다. 어딘가에 놓을 필요가있는 기본 펜촉에 특별한 것이 있습니까? 특별한 파일 형식인가요? – Kyle

+0

나는 그렇게 생각하지 않는다. 체크 할 마지막 장소는 펜촉을 올리는 대리인입니다. 다시 한 번 확장자가없는 올바른 이름이 설정되어 있는지 확인하십시오. – Moshe