Ich habe ein Swift-Protokoll deklariert:
protocol Option {
var name: String { get }
}
Ich erkläre mehrere Implementierungen dieses Protokolls - einige Klassen, einige Aufzählungen.
Ich habe einen Ansichts-Controller mit einer Eigenschaft, die wie folgt deklariert ist:
var options: [Option] = []
Wenn ich versuche, diese Eigenschaft auf ein Array von Objekten festzulegen, die das Option
Protokoll in anderen VCs implementieren prepareForSegue
, wird ein Laufzeitfehler angezeigt:
fatal error: array cannot be bridged from Objective-C
Warum funktioniert das nicht? Der Compiler verfügt über alle erforderlichen Informationen, und ich verstehe überhaupt nicht, was Objective-C damit zu tun hat. Mein Projekt enthält nur Swift-Dateien, und diese Arrays kommen nicht in Framework-Methoden hinein oder aus diesen heraus erfordern, dass sie überbrückt werden NSArray
.
@objc
, Ihrem Protokoll voranzukommen ? stackoverflow.com/a/28029568/377369