クラス名を引数に与えて、与えられたクラス内の同じ名前のプロパティを参照させたい
複数のクラスに同じ名前のプロパティがあり、
そのプロパティを参照するクラスを作成したいと考えております。
言葉で表現しにくいので、以下にサンプルを記載させて頂きました。
クラスa,bには同じ名前のプロパティpがあり、
クラスmonitorはプロパティpを参照するクラスになります。
このクラスmonitorにクラス名aかbを与えることで、
プロパティpを参照させたいと考えております。
クラスはa,b,c,d,...と増え(プロパティpは必ずあります)、
動的にクラス名をmonitorに与えたいと考えております。
class a {
var p: String!
init() {
self.p = "class a"
}
}
class b {
var p: String!
init() {
self.p = "class b"
}
}
// ここではクラスa専用になっているが、クラスbでも共通で利用したい
class monitor {
var i: a!
init() {
self.i = a()
print(self.i.p) // class a
}
}
let i = monitor() // クラスaかbを渡して、共通のpを参照させたい
伝わりにくい内容ではございますが、どうかよろしくお願い致します。
より便利な方法がありましたらご教授頂けると幸いです。