Partielle Anwendung der Protokollmethode ist nicht erlaubt

8

Kann jemand diesen Fehler erklären und warum funktioniert das mit Schließung?

Wenn Sie "Test" in "A" in Klasse "B" ändern, funktioniert alles in beiden Fällen.

beta 7

%Vor%

AKTUALISIEREN

Auch hier ist meine seltsame Segmentierung Fehler Sammlung Ссылка

Zögere nicht zu kommentieren, wenn du irgendwelche Gedanken dazu hast.

    
Aleksey G. 05.09.2014, 11:21
quelle

2 Antworten

7

UPDATE (Danke an Laszlo Korte)

  

Von Xcode 7 Beta 2 mit Swift 2.0 Release Notes: Nicht-mutierende Methoden   von Strukturen, Aufzählungen und Protokollen können nun teilweise auf ihre angewendet werden   "Self" -Parameter.

Zum Beispiel:

%Vor%

ORIGINAL ANSWER (korrigiert für Xcode 6 mit Swift 1.2)

Das Protokoll kann nach Klasse, Struktur oder Enumeration übernommen werden. In den letzten beiden Fällen ist die teilweise Anwendung der Struktur- oder Aufzählungsmethode nicht zulässig und Sie erhalten "Partielle Anwendung der Protokollmethode ist nicht erlaubt", da a: Test eine Struktur oder Aufzählung sein kann.

Teilweise angewendete Methode oder Funktion ist mit anderen Worten curried method or function . Wenn Sie also a.someFunc schreiben, versuchen Sie, diese Methode teilweise anzuwenden, d. H. Erhalten Sie einen Verweis auf die Schließung, die implizit den Verweis auf a enthält. Aber Strukturen und Aufzählungen sind keine Referenztypen, sie sind Werttypen und es gibt keinen Verweis auf a .

    
mixel 22.12.2014 18:05
quelle
3

Also kann ich nicht mit sprechen, warum es sich so verhält, aber ich habe einen Workaround gefunden. Versuchen Sie Folgendes:

%Vor%     
Spencer 09.09.2014 14:04
quelle