Was ist der beste Weg, um zu nicht verwandten Typen unter einem Protokoll, z. diesen neuen Typ als Elementtyp für ein Array zu verwenden?Unite Typen unter einem Protokoll
z.B.: von Drittanbietern bereitgestellte Klasse Foo
und Klasse Bar
nicht verwandt sind, jedoch würde Ich mag ein Array erstellen, die Bar
Elemente der Typen Foo
und enthält. Beachten Sie, dass ich die Implementierung von Foo
und Bar
nicht direkt ändern kann.
Ein Ansatz könnte sein:
protocol FooBar {}
extension Foo: FooBar {}
extension Bar: FooBar {}
Doch dies scheint mir seltsam und eher unattraktiv, da es keine Implementierungen sind - gibt es andere Möglichkeiten?
Ich werde durch dieses Array aufzählen und die Elemente mit der Kenntnis, dass es entweder Foo
oder Bar
innerhalb sein kann.
Haben 'foo' und 'Bar' von der gleichen Basisklasse erben? – JAL
@JAL Nein, sonst wäre die Lösung klar. – ff10
_ "Ich möchte ein Array erstellen, das Element-Typen von Foo und Bar enthält" _ Wie planen Sie, dieses Array zu verwenden? – courteouselk