IT박스

NSInvalidUnarchiveOperationException : NSLayoutConstraint라는 클래스를 인스턴스화 할 수 없습니다.

itboxs 2020. 6. 1. 19:29
반응형

NSInvalidUnarchiveOperationException : NSLayoutConstraint라는 클래스를 인스턴스화 할 수 없습니다.


나는 이것에 매우 익숙하다. 나는 iPhone 프로젝트 "HelloWorld"에 대해 Apple의 튜토리얼을 단계별로 따랐다. iPhone 5.0 시뮬레이터에서 실행했는데 충돌했습니다.

2012년 11월 2일 14 : 46 : 06.782하여 HelloWorld [9880 : C07] * 의한 캐치되지 않는 예외 'NSInvalidUnarchiveOperationException'이유 응용 프로그램 종료 '할 수 없다라는 NSLayoutConstraint 인스턴스화 클래스'* 우선 투사 호출 스택 (0x14a2052 0xea2d0a 0x144aa78 0x144a9e9 0x32f7d7 0x32f9af 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5x0x13b1x0

누군가 무슨 일이 있었는지 말해 줄 수 있습니까? Xcode 4.5를 사용하고 있습니다.


기본적으로 Xcode 4.5에서 새 iOS 프로젝트를 만들면 스토리 보드 또는 XIB가 자동 레이아웃을 사용하도록 설정되어 있으며 이는 iOS 6.0의 새로운 기능입니다. NSLayoutConstraint클래스는 자동 레이아웃 시스템의 일부이며 이전 버전의 iOS에는 존재하지 않습니다.

앱을 이전 버전의 iOS에 배포 하려면 자동 레이아웃을 사용 하지 않도록 스토리 보드 또는 XIB를 변경해야합니다 . 파일 검사기의 확인란입니다.

자동 레이아웃 끄기


Xib 파일 (인터페이스 빌더 파일)에는 iOS 5에서 지원 하지 않는 AutoLayout 요소가 포함되어 있습니다 .

Xcode에서 .xib 파일로 이동하여 각 파일에 대해 자동 레이아웃을 끕니다. 왼쪽에 "AutoLayout 사용"이라는 확인란이 있습니다.이 확인란을 선택 취소 한 후 다시 시도하십시오. (파일 소유자가있는 경우 왼쪽 관리자의 첫 번째 탭 아래에 있음)이 선택되었습니다.


업데이트하려는 오래된 프로젝트에서 작업 할 때이 오류가 발생했습니다. 제약 조건 작업을 시작하기 위해 "자동 레이아웃 사용"확인란을 선택했지만 배포 대상 설정을 iOS 6으로 업데이트하는 것을 잊었습니다.


iPhone 6.0 시뮬레이터에서 실행해야합니다. 오류 :

* Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *

iOS 6에서만 작동하는 자동 레이아웃을 사용하도록 제안합니다.

참고 URL : https://stackoverflow.com/questions/13201586/nsinvalidunarchiveoperationexception-could-not-instantiate-class-named-nslayout

반응형