Ich hämmere meinen Kopf gegen die Wand mit dem folgenden Code in Swift. Ich habe ein einfaches Protokoll definiert:Kann nicht Eigenschaft im Protokoll zuweisen - Swift Compiler Fehler
protocol Nameable {
var name : String { get set }
}
und umgesetzt, dass mit:
class NameableImpl : Nameable {
var name : String = ""
}
und dann habe ich die folgende Methode in einer anderen Datei (fragen Sie mich nicht warum):
func nameNameable(nameable: Nameable, name: String) {
nameable.name = name
}
das Problem ist, dass der Compiler für die Eigenschaftszuweisung in diesem Verfahren die folgenden Fehler gibt:
kann auf 'Name' in 'benennbaren'
Ich kann nicht sehen, nicht abtreten, was ich falsch mache ... Der folgende Code kompiliert fein:
var nameable : Nameable = NameableImpl()
nameable.name = "John"
Ich bin Sicher, es ist etwas Einfaches, das ich übersehen habe - was mache ich falsch?
tl; dr change "lassen myProtocolConformingItem" auf "var myProtocolConformingItem" –
@ Matt Während dieser Vorschlag/Lösung auf jeden Fall funktioniert und wird derzeit sogar vom Compiler vorgeschlagen, halten Sie es für einen Code-Geruch? – damirstuhec
Ich erhalte den Fehler 'Gebrauch von undeclared Art benennbarer' – Jack