もう1つの優れた解決策はconvenience
、次のように新しい初期化子を初期化子として宣言することです。
convenience init( objectId : NSManagedObjectID ) {
self.init()
}
サブクラスで指定された初期化子をまったく宣言しない場合、それらは自動的に継承さself.init()
れ、便利な初期化子内で使用できます。
UIViewControllerの場合、デフォルトのinitメソッドは両方の引数に対してinit(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
withnil
を呼び出します(UIViewControllerをCommandキーを押しながらクリックすると、その情報が表示されます)。
TL; TR:プログラムでUIViewController
sを操作する場合は、カスタム引数を使用して新しい初期化子を追加する完全な実例を次に示します。
class MyCustomViewController: UIViewController {
var myString: String = ""
convenience init( myString: String ) {
self.init()
self.myString = myString
}
}