Seltsames Verhalten bei Swift-Protokollmethoden

9

Ich bin gerade über ein seltsames Verhalten in swift gestolpert, wenn ich ein Protokoll mit optionalen Methoden verwende, die denselben Namen und dieselben Argumenttypen, aber unterschiedlich benannte Parameter haben.

Alles funktioniert gut, wenn ich keine oder beide Methoden in meiner Klasse implementiere, aber sobald ich einen Kommentar ausspreche, beschwert sich swift:

  

"Die Methode 'myProtocol (foo :)' hat andere Argumentnamen als diese   wird vom Protokoll 'MyProtocol' ('myProtocol (bar :)') benötigt "

Das Verhalten, das ich erwarten würde, ist, dass ich eine beliebige Kombination (nur eine der beiden, beide oder keine) der Protokollmethoden implementieren kann, da beide Methoden als optional definiert sind.

Hier ist eine Spielplatz-Datei, um das Problem zu demonstrieren, wenn Sie die Kommentare nicht kommentieren oder keine der Protokollmethoden implementieren, die alles gut zusammenstellen.

%Vor%

Kann mir jemand darüber Aufklären?

    
sled 14.08.2014, 13:17
quelle

1 Antwort

3

Wie aus der Swift-Dokumentation für Funktionen bekannt, sind foo und bar externe Namen für aString -Parameter. Technisch gesehen hat er genau die gleiche Funktion mit nur verschiedenen Namen von Parametern, die in Objective-C völlig legal sind:

%Vor%

Ich denke, es ist ein Fehler im Swift-Compiler! Einen Bericht erstellen: Ссылка

    
Keenle 14.08.2014, 13:53
quelle

Tags und Links