1. 상황

μ½”λ“œλ‘œ UIλ₯Ό μž‘μ„±ν•˜λ˜ 도쀑, μ»€μŠ€ν…€ λ·° μ»¨νŠΈλ‘€λŸ¬μ—μ„œ ν”„λ‘œνΌν‹°λ“€μ— λŒ€ν•΄ μ΄ˆκΈ°ν™”ν•˜λŠ” μƒμ„±μžλ₯Ό κ΅¬ν˜„ν•˜κ³ μž ν•  λ•Œ λœ¨λŠ” μ—λŸ¬μ΄λ‹€. μ»€μŠ€ν…€ μƒμ„±μžλ₯Ό κ΅¬ν˜„ν•˜λ €κ³  ν•˜λ©΄, init(coder:)도 κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.

 

2. 원인

μƒμ„±μž κ°œλ…μœΌλ‘œ 거슬러 μ˜¬λΌκ°€μ•Ό ν•œλ‹€. μƒμœ„ 클래슀의 ν•„μˆ˜ μƒμ„±μžλŠ” ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œλ„ λ°˜λ“œμ‹œ κ΅¬ν˜„ν•΄μ€˜μ•Ό ν•œλ‹€. μ΄λ•Œ, λ³„λ„μ˜ λ‹€λ₯Έ μ§€μ • μƒμ„±μžλ₯Ό κ΅¬ν˜„ν•˜μ§€ μ•ŠμœΌλ©΄ κ·ΈλŒ€λ‘œ 상속 λ°›μ•„μ„œ ν•„μˆ˜ μƒμ„±μžλ₯Ό ꡳ이 κ΅¬ν˜„ν•  ν•„μš”κ°€ μ—†λ‹€. κ·ΈλŸ¬λ‚˜,, μ΄ˆκΈ°ν™”κ°€ ν•„μš”ν•œ ν”„λ‘œνΌν‹°λ“€μ„ λ§Œλ“€κ³ ,, 이에 λŒ€ν•΄ μ΄ˆκΈ°ν™”λ₯Ό ν•΄μ£ΌλŠ” μƒμ„±μžλ₯Ό λ”°λ‘œ κ΅¬ν˜„ν•΄μ£Όλ©΄,, μžλ™ 상속이 κΉ¨μ§„λ‹€. λ”°λΌμ„œ ν•„μˆ˜ μƒμ„±μžλ₯Ό 직접 κΌ¬μ˜₯ μ˜€λ²„λΌμ΄λ”© ν•΄μ€˜μ•Ό ν•˜λŠ”λ°, override ν‚€μ›Œλ“œκ°€ μ•„λ‹Œ required ν‚€μ›Œλ“œλ₯Ό κ³ λŒ€λ‘œ μ“΄λ‹€.

즉, UIViewControllerλ₯Ό μƒμ†ν•˜λŠ” μ»€μŠ€ν…€ λ·° μ»¨νŠΈλ‘€λŸ¬μ—μ„œλŠ” 기본적으둜 μƒμ„±μžλ₯Ό κ΅¬ν˜„ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€. UIViewController의 μƒμ„±μžλ₯Ό μžλ™μœΌλ‘œ 상속 λ°›κΈ° λ•Œλ¬Έ. κ·ΈλŸ¬λ‚˜ λ³„λ„μ˜ μ»€μŠ€ν…€ μƒμ„±μžλ₯Ό κ΅¬ν˜„ν•˜λŠ” μˆœκ°„, UIViewController둜 μ˜¬λΌκ°€κ³ , NSCoding으둜 μ˜¬λΌκ°„λ‹€……NSCodingμ—μ„œ init?(coder:)λ₯Ό ν•„μˆ˜λ‘œ ν–ˆκΈ°μ—,, κ΅¬ν˜„ν•΄μ€˜μ•Ό ν•œλ‹€.

 

3. 참고 자료

'UIKit' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[iOS] CHCR(Content Hugging Priority vs. Compression Resistance Priority)  (0) 2024.07.02
user-img λ“€νŒμ„μ§€λ‚˜λŠͺμ§€λŒ€λ₯Όκ±΄λ„ˆ
kiln
ν˜„μž¬κΈ€
Must call a designated initializer of the superclass 'UIViewController’
ν•¨κ»˜ 보면 쒋을 포슀트