안녕하세요. 개발하는 정주입니다.
오늘은 "Unknown class XXX in Interface Builder file" Exception 해결 방법에 대해 포스팅하려고 합니다.
스토리보드에서 단 하나의 작업만 해주면 해결이 되는 에러였습니다.
목차
NSUnknownKeyException 발생 이유
NSUnknownKeyException은 참조에서 문제가 생겼을 때 발생합니다.
구글링을 해보니 발생하는 가장 큰 이유는 코드에서 Outlet을 삭제하고 스토리보드에서는 남겨놨을 때, 혹은 그 반대의 경우였는데요.
저는 두 가지 상황 모두 아니었습니다.
저는 Outlet의 참조 문제가 아닌 클래스 타겟 모듈을 잘못 설정한 경우였습니다.
바로 ViewController를 설정했지만 Module 설정을 하지 않았던 것입니다. 그래서 Exception의 내용을 보면 Interface Builder file을 찾을 수 없다고 나온 것입니다.
스토리보드로 이동하기
Exception이 발생한 당시 스토리보드에서 ViewController를 선택했을 때의 Inspector 모습입니다.
아래는 정상적으로 동작하는 ViewController의 모습입니다.
차이점은 Module 설정이 되어 있냐 안 되어 있냐입니다.
문제가 있는 Class는 Module이 비어있고 문제가 없는 것은 Module이 정상적으로 설정되어 있습니다.
따라서 제일 아래의 체크 박스를 체크해서 타겟 모듈을 설정해주면 에러가 해결됩니다.
참고로 해당 체크 박스는 자동으로 자신이 소속되어 있는 Target이 모듈로 설정되는 것입니다.
체크를 해제하고 따로 Module 설정을 해주셔도 됩니다.
마무리 잡담
확인할 것도 많고 체크할 것도 많고 까다롭네요.
더 신경써서 개발해야겠습니다.
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.