Head First, IPhone Development 책으로 예제를 작성하다가 오류가 발생하는 부분이 있어서 해결 방법을 공유합니다.
이 서적이 아마도 iOS4 기준으로 작성되다 보니 iOS5에서 바뀐 부분을 캐치하지 못한 것 아닌가 생각이 됩니다. 예전 SDK로는 문제 없이 실행이 되었던 것 같아요.
챕터4의 '멀티 뷰, 테이블과 뷰 연결하기' 섹션을 보면 DrinkMixer 프로젝트를 만듭니다. 180페이지까지 성공적으로 실행이 되는 것을 확인 할 수 있는데 Xcode 4.2.1 Build 4D502로 빌드하여 실행하면 다음과 같은 치명적인 오류가 발생합니다.
DrinkMixer[19728:f803] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
이는 Storyboard 에서는 테이블뷰의 아이템을 static 하게 사용할 것이라고 명시해놓고 동적으로 추가를 해서 발생하는 문제입니다. 다음 스텝으로 Storyboard에서도 컨텐츠를 동적으로 추가 할 것이라고 명시해야 합니다.
1. Project navigator에서 MainStoryboard.storyboard를 클릭
2. 오른쪽의 Attributes inspector를 보면 Table View에 Content라는 항목 확인
3. 해당 항목값을 'Static Cells'에서 'Dynamic prototypes'로 변경합니다.
1. Project navigator에서 MainStoryboard.storyboard를 클릭
2. 오른쪽의 Attributes inspector를 보면 Table View에 Content라는 항목 확인
3. 해당 항목값을 'Static Cells'에서 'Dynamic prototypes'로 변경합니다.
이제 빌드가 잘 될 겁니다. 아마도!