개발...................../TIL
View Hierarchy 관련 오류
bluewiper
2024. 6. 30. 18:26
@discardableResult
public func equalToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {
guard let other = self.description.item.superview else {
fatalError("Expected superview but found nil when attempting make constraint `equalToSuperview`.")
}
원래 제약조건 아래에
//view
[label]
.forEach { view.addSubview($0) }
를 작성했는데 제약조건에서 equalToSuperView만 쓰면 오류가 나서 확인하니 superView가 nil값이어서 쓸 수 없다는 메시지였다.
해결방법
superview가 정상적으로 만들어지지 않은 상황에서 equaltoSuperView를 호출해서 생긴 오류였다.
해결
제약조건을 세우기 전에 view를 생성하니 오류가 사라졌다. 위 코드에서는 view.addSubview(label)를 constraints 설정 이전에 호출하여 label이 view hierarchy에 제대로 추가된 후에 constraints가 적용되도록 했다. 이렇게 하면 constraints 설정 시 label의 superview가 정상적으로 설정되어 있어 오류가 발생하지 않는다.