-
View Hierarchy 관련 오류개발...................../TIL 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가 정상적으로 설정되어 있어 오류가 발생하지 않는다.
'개발..................... > TIL' 카테고리의 다른 글
테이블뷰 기본 (0) 2024.07.19 메모리 관리 RC, Reference Counting (0) 2024.07.10 #Preview macro, Xcode 코드베이스로 UI 설계할 때 유용한 팁 (0) 2024.06.27 Swift 코드베이스 준비하기(한 개의 페이지일 때) (0) 2024.06.24 Swift 버튼을 눌러 연속적으로 이미지 바꾸기(.toggle 활용) (0) 2024.06.21