๋ชจ๋์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ค๊ฐ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ง๋ฌ๋ค.
overriding non-open instance method outside of its defining module
import UIKit
open class BaseView: UIView {
public override init(frame: CGRect) {
super.init(frame: frame)
configureAttributes()
configureLayout()
}
@available(*, unavailable)
public required init?(coder: NSCoder) {
super.init(coder: coder)
}
public func configureAttributes() {}
public func configureLayout() {}
}
BaseView์์ configureAttributes, configureLayout์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด๋๊ณ BaseView๋ฅผ ์์ ๋ฐ๋ ViewController์์ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ฐ๊ธฐ ์ํจ์ด์๋ค. ์์ public์ผ๋ก ์ ๊ทผ ์ ํ์๋ฅผ ์ ์ธํ๋ฉด ์์์ ํ ์ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ open์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ค.
import UIKit
open class BaseView: UIView {
public override init(frame: CGRect) {
super.init(frame: frame)
configureAttributes()
configureLayout()
}
@available(*, unavailable)
public required init?(coder: NSCoder) {
super.init(coder: coder)
}
open func configureAttributes() {}
open func configureLayout() {}
}