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.
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
.
Tags und Links methods swift closures protocols xcode6-beta7