Potato
μ•ˆλ…•ν•˜μ„Έμš”, κ°μž‘λ‹ˆλ‹€?πŸ₯” ^___^ 😺 github λ°”λ‘œκ°€κΈ° πŸ‘‰πŸ»

Swift/UIKit

[UIKit] init(coder: NSCoder), fetalError

감자 πŸ₯” 2022. 7. 10. 14:49
λ°˜μ‘ν˜•

🟣 μ˜ˆμ‹œ μ½”λ“œ

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

 

🟣 μ•žμ—μ„œ 배운 λ‚΄μš© 정리

https://didu-story.tistory.com/288

 

[UIKit] init(frame: ), init(coder: ) μ΄λ‹ˆμ…œλΌμ΄μ €

UIKit을 μ‚¬μš©ν•΄μ„œ 앱을 λ§Œλ“€ λ•Œ μ•„λž˜ μ½”λ“œλ₯Ό ν•„μˆ˜μ μœΌλ‘œ μ μ–΄μ•Όλ§Œ ν•œλ‹€. κ³Όμ—° 이 μ½”λ“œκ°€ μ˜λ―Έν•˜λŠ”κ²Œ 뭐고 μ™œ μ μ–΄μ•Όν• κΉŒ? 🟣 μ˜ˆμ‹œμ½”λ“œ init(frame: CGRect, data: Data) { self.data = data super.init(frame: f..

didu-story.tistory.com

override init(frame: CGRect) // viewλ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©λœλ‹€.
required init?(coder: NSCoder) // μŠ€ν† λ¦¬ λ³΄λ“œμ— 생성될 λ•Œ μ‚¬μš©λœλ‹€.

 

🟣 fetalError

πŸŸͺ κ³΅μ‹λ¬Έμ„œ

https://developer.apple.com/documentation/swift/fatalerror(_:file:line:)

 

Apple Developer Documentation

 

developer.apple.com

μ§€μ •λœ λ©”μ‹œμ§€λ₯Ό 무쑰건 μΈμ‡„ν•˜κ³  싀행을 μ€‘μ§€ν•©λ‹ˆλ‹€. 라고 μ •μ˜λ˜μ–΄μžˆλ‹€. 였!간단쓰

 

πŸŸͺ μ½”λ“œλ‘œ μ‚΄νŽ΄λ³΄μž.

String = String(), file: StaticString = #file, line: UInt = #line) -> Never

Never을 λ°˜ν™˜ν•œλ‹€. 이 μ˜λ―ΈλŠ” 호좜이 되면 더 이상 앱이 μ§„ν–‰λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” λœ»μ΄λ‹€. 즉 κ°œλ°œμžκ°€ 인지 ν•˜μ§€ λͺ»ν•˜λŠ” μƒν™©μ—μ„œ μ˜ˆμ™Έμ²˜λ¦¬λ₯Ό 이 ν•¨μˆ˜λ‘œ ν•œλ‹€λ©΄, μ‹€ν–‰ λ˜μ—ˆμ„ λ•Œ λ¬Έμ œκ°€ μžˆλŠ” 뢀뢄을 μ•Œ 수 μžˆλ‹€.

그럼 이제 μ˜ˆμ‹œμ½”λ“œλ₯Ό 해석해보면, fetalErrorλ₯Ό init(coder: )μ—μ„œ μ‚¬μš©ν•˜λ©΄ μŠ€ν† λ¦¬λ³΄λ“œλ₯Ό 생성할 λ•Œ μ œλŒ€λ‘œ 이루어지지 μ•ŠλŠ”λ‹€λ©΄, λ°”λ‘œ μ•± 싀행을 μ€‘μ§€μ‹œν‚€κ³  μ–΄λ””μ„œ μ—λŸ¬κ°€ λ‚«λŠ”μ§€ 찾을 수 μžˆκ²Œλœλ‹€…!

 


 

πŸ“– Reference

https://dev200ok.blogspot.com/2020/06/swift-fatalerror.html

 

[swift] fatalerror에 λŒ€ν•΄ 처음 μ•Œμ•„λ³΄μ•˜λ‹€

Devlog 와 TIL μž…λ‹ˆλ‹€. κ°œλ°œμ„ ν•˜λ©΄μ„œ μ•Œκ²Œλœ λ‚΄μš©μ„ 닀루고 μžˆμŠ΅λ‹ˆλ‹€.

dev200ok.blogspot.com

 

λ°˜μ‘ν˜•