NSObjectから継承するクラスを作成しようとしていますが、これは必要なパラメータを指定してのみ初期化できます。次のように私はこれを達成することができますSwift 3で特定のイニシャライザを強制する
class MyTestClass: NSObject {
var myTestValue: String
var myTestValue2: String
var myTestValue3: String
private override init() {
myTestValue = ""
myTestValue2 = ""
myTestValue3 = ""
super.init()
}
init(value: String, value2: String, value3: String) {
myTestValue = value
myTestValue2 = value2
myTestValue3 = value3
super.init()
}
}
は、クラス変数の初期化を複製することなく、これを達成するためのより良い方法はありますか?
明らかに、オプションはここではオプションですが、私はそのルートに行きたくありません。同じを達成するためのより簡潔な方法のための任意の提案?
Doh!私は 'NSObject'の' init'が引き続きアクセス可能であると仮定していたので、多くの方法を試みましたが、そうではありませんでした!私はなぜそれが理解できないのか分からない。何か案が? – doovers
初期化子は継承されません。根拠については、[この質問](http://stackoverflow.com/questions/18147768/why-constructors-can-not-be-inherited-in-java)を参照してください。それはJavaですが、その考え方はSwiftにも当てはまります。 – Alexander
また、私の編集を参照してください。 – Alexander