私はsaw this questionですが、実際のクラスの配列を作成して、それぞれのクラスの関数を呼び出すことができます。Swift - クラスの配列を作成する
例:
let syncClasses:[Any] = [Battery, Tank, Gas]
for object in syncClasses {
object.someClassMethod()
}
私は配列の型として[Any]
を使用してみましたが、それは投げた:
Expected member name or constructor call after type name
私はでそれをハックすることができますので、クラスのすべてが同じObject
クラスから継承やっている:
let syncClasses:[Object] = [Battery(), Tank()]
しかし、私はしたい機能をしなければならないクラス関数の代わりにメソッドを呼び出すと、それは私が望むほどきれいではありません。
優秀です。ありがとうございました。スーパークラスを使用して継承を共有するためにプロトコルを使用する場合の標準/ルールはありますか? – jgraft
本当にありません。しかし、タイプシステムと戦わないでください。 Objective-Cを継承するAppleフレームワークの多くのクラスは、サブクラス化されているはずです。それは環境に依存します。 – vadian