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)"
}
}
}