Adding Initializer
extension Date {
init?(year: Int, month: Int, day: Int) {
let cal = Calendar.current
var comp = DateComponents()
comp.year = year
comp.month = month
comp.day = day
guard let date = cal.date(from: comp) else {
return nil
}
// Date는 구조체로 작성되어 있기때문에 self에 저장가능
self = date
}
}
Date(year: 2014, month: 4, day: 16)
extension UIColor {
convenience init(red: Int, green: Int, blue: Int) {
self.init(red: CGFloat(red) / 255, green: CGFloat(green) / 255, blue: CGFloat(blue) / 255, alpha: 1.0)
}
}
UIColor(red: 0, green: 0, blue: 255)
struct Size {
var width = 0.0
var height = 0.0
}
extension Size {
init(value: Double) {
width = value
height = value
}
}
// extension으로 생성자를 추가하면 기본적으로 제공되는 생성자와 함께 사용할 수 있다.
Size()
Size(width: 12, height: 34)