So rufen Sie die statische Methode auf, die vom Swift-Protokoll bereitgestellt wird

8

Zugriff auf die static -Protokollmethode innerhalb einer Instanz

Ich habe eine Liste von Contact , der Kontakt kann ein FamilyContact sein, der von Contact und dem GroupStatus protocol

erbt

Ich möchte die statische Methode von GroupStatus aufrufen, aber vergebens ...

Hier ist mein Code

%Vor%

Ich kann Contact.Type does not have a member named 'isPrivate'

nicht kompilieren

Wie kann ich es nennen? Es funktioniert, wenn ich das static Schlüsselwort lösche, aber ich denke, es ist logischer, es statisch zu definieren.

Wenn ich

ersetze %Vor%

von

%Vor%

Es funktioniert, aber ich kann mehr als 1 Unterklassen haben

Wenn ich die static keywork entferne, kann ich das auf folgende Weise tun:

%Vor%

Aber ich möchte das static Schlüsselwort

behalten     
thedjnivek 04.05.2015, 13:24
quelle

1 Antwort

10

Dies sieht wie ein Fehler oder eine nicht unterstützte Funktion aus. Das würde ich erwarten Folgendes funktioniert:

%Vor%

Es kompiliert jedoch nicht:

%Vor%

Es funktioniert mit FamilyContact.Type anstatt mit GroupStatus.Type . Ein ähnliches Problem wird hier gemeldet:

% ce_de% ist eine Instanzmethode anstelle einer Klassenmethode die einzige Problemumgehung, an die ich derzeit denken kann, vielleicht kommt jemand mit einer besseren Lösung ...

Update für Swift 2 / Xcode 7: Wie @Tankista unten bemerkt, hat dies wurde behoben. Der obige Code kompiliert und funktioniert wie erwartet in Xcode 7 Beta 3.

    
Martin R 04.05.2015, 14:16
quelle

Tags und Links