読者です 読者をやめる 読者になる 読者になる

swiftのdesignated initializerとconvenience initializer

NSDateのreference見てると、こういうところが出てくる。

extension NSDate {
    
    class func distantFuture() -> AnyObject! /* NSDate * */
    class func distantPast() -> AnyObject! /* NSDate * */
    
    init() /* designated initializer */
    init(timeIntervalSinceReferenceDate ti: NSTimeInterval) /* designated initializer */
    
    convenience init(timeIntervalSinceNow secs: NSTimeInterval)
    convenience init(timeIntervalSince1970 secs: NSTimeInterval)
    convenience init(timeInterval secsToBeAdded: NSTimeInterval, sinceDate date: NSDate!)
}

これの、designated initializerとconvenienceの違いというか意味がよく分からない。 自作クラスで、convenienceをつけるてみたら、self.initを中で書かないとダメだよと注意される。

理解できたら追記する。

ちょうど欲しかった答えがありました。

[Swift] convenienceイニシャライザとdesignated(指定)イニシャライザ - Qiita