Initialization - The Swift Programming Language (Swift 5.5)

Default value

<aside> ๐Ÿ’ก Assign default values to all properties.

</aside>

If all properties have default values, the compiler creates an initializer that takes no arguments. This initializer makes it easy to create a new instance by callingย Data().

init์„ ์„ค์ •ํ•  ๋•Œ, ์ดˆ๊ธฐ๊ฐ’์„ ์ฃผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ (ํ”„๋กœํผํ‹ฐ๋“ค์€ ๋””ํดํŠธ๊ฐ’์œผ๋กœ ์„ค์ •)

init(property: Int = 0)
...
init()
init.property = 0

Convenience init

๋ฌธ์ž ๊ทธ๋Œ€๋กœ ํŽธ๋ฆฌํ•œ ์ดˆ๊ธฐํ™”

๋‚ด๋ถ€์— ์…€ํ”„ ์ดˆ๊ธฐํ™”๋ฅผ ํ†ตํ•ด ์ •ํ™•ํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ๋ณด์žฅ

๋””ํดํŠธ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ์ž…๋ง›๋Œ€๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์ˆ˜์ • ๊ฐ€๋Šฅ

override init(frame: CGRect) {
    super.init(frame: frame)
}
    
convenience init(in superview: UIView) {
    self.init(frame: superview.frame)
		...
}

&ref

(๋ฒˆ์—ญ)https://icksw.tistory.com/49

https://www.hackingwithswift.com/example-code/language/what-are-convenience-initializers

https://stackoverflow.com/questions/40093484/what-is-the-difference-between-convenience-init-vs-init-in-swift-explicit-examp

http://xho95.github.io/xcode/swift/grammar/initialization/2016/01/23/Initialization.html