에러 메세지
아래와 같은 크래시 리포트가 올라왔다.
Fatal Exception: NSInternalInconsistencyException
Mutating a priority from required to not on an installed constraint (or vice-versa) is not supported. You passed priority 750 and the existing priority was 1000.
iOS 12, iPadOS 12 에서만 발생하고 있었음
원인
아래 오류 설명을 보면 이미 설치된 constraint의 우선순위(priority)를 바꿀 수 없다고한다
Fatal Exception: NSInternalInconsistencyException
Mutating a priority from required to not on an installed constraint (or vice-versa) is not supported. You passed priority 750 and the existing priority was 1000.
기존 코드를 보면 같은 UILabel에 대해 두개의 constraint를 잡아두고 초기에 둘 다 install을 한 후, 코드에서 priority를 바꿔주고 있었다.
이렇게 되면 같은 컴포넌트에 대해서 서로 다른 constraint가 설치되고, 초기에 1000(required)로 설정된 후 priority 하락으로 not required가 되어 문제가 생기나보다.
해결
따라서 아래와 같이 priority로 조정하지 않고 활성화여부(isActive)로 조정하도록 수정하였고 해결함.
'iOS > iOS Troubleshooting' 카테고리의 다른 글
HTML text -> UILabel 적용을 위해 NSMutableAttributedString 변환 시 크래시 발생 (0) | 2025.03.12 |
---|