Can Swift-Methode für Erweiterungen von Protokollen definiert, auf die in Objective-c @ zugegriffen wi

st es möglich, Methoden, die in einer Protokollerweiterung in Swift definiert sind, von Objective-C aus aufzurufe

Beispielsweise

protocol Product {
    var price:Int { get }
    var priceString:String { get }
}

extension Product {
    var priceString:String {
        get {
            return "$\(price)"
        }
    }
}

class IceCream : Product {
    var price:Int {
        get {
            return 2
        }
    }
}

Die Preiszeichenfolge einer Instanz vonIceCream ist '$ 2' und kann in Swift aufgerufen werden, die Methode ist jedoch in Objective-C nicht sichtbar. Der Compiler löst den Fehler 'Keine sichtbare @Schnittstelle für' IceCream 'deklariert den Selektor ...' aus.

In meiner Konfiguration funktioniert alles wie erwartet, wenn die Methode direkt in der Implementierung des Swift-Objekts definiert ist. d.

protocol Product {
    var price:Int { get }
    var priceString:String { get }
}

class IceCream : Product {
    var price:Int {
        get {
            return 2
        }
    }
    var priceString:String {
        get {
            return "$\(price)"
        }
    }
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage