Wie wird eine Array-Klasse in Swift abgeleitet?

8

Ich bin neu in Swift. Ich habe eine Basisklasse:

%Vor%

Ich möchte eine foo-Sammlungsklasse implementieren:

%Vor%

Aber der Compiler beklagt sich:

  

Vererbung von einem Nicht-Protokoll-Nicht-Klassen-Typ von 'Array'

Ich habe andere Syntax ausprobiert (z. B. [foo] und NSMutableArray<foo> ), aber keiner von ihnen besteht die Compiler-Prüfung.

Das sollte einfach sein, aber ich habe den ganzen Tag gegoogelt und konnte es nicht herausfinden. Weiß jemand, ob es möglich ist und wenn ja, die richtige Syntax?

    
Alex 09.10.2014, 23:11
quelle

3 Antworten

12

Swifts Array type ist eine Struktur und in Swift müssen Basisklassen tatsächliche Klassen sein (also class Foo ) und keine Strukturen.

Sie können also leider nicht, was Sie versuchen, durch Vererbung von Array tun. Sie könnten jedoch das Array als ein Feld in Ihrer Klasse speichern und Methoden an es weiterleiten, möglicherweise alle Protokolle implementieren, die Sie unterstützen möchten, und so weiter.

    
Josh Petrie 09.10.2014, 23:22
quelle
3

In Swift ist Array eine Struktur, keine Klasse. Um eine Klasse zu haben, die eine Array-Unterklasse ist, müssen Sie NSArray, sein Gegenstück zu Objective-C, verwenden.

Zum Beispiel

%Vor%     
erdekhayser 09.10.2014 23:22
quelle
2

In Swift 2.x können Sie eine Protokollerweiterung verwenden.

%Vor%

-Protokollerweiterungen bieten "Einfügepunkte", um Klassen zu erweitern, die keine Klassen sind, Klassen, die Sie nicht besitzen, usw.

    
Dan Rosenstark 24.11.2015 05:23
quelle

Tags und Links