Swift プロトコルを宣言しました。
protocol Option {
var name: String { get }
}
このプロトコルの複数の実装 (いくつかのクラス、いくつかの列挙型) を宣言します。
次のように宣言されたプロパティを持つView Controllerがあります。
var options: [Option] = []
このプロパティをOption
別の VC のプロトコルを実装するオブジェクトの配列に設定しようとするとprepareForSegue
、実行時エラーが発生します。
fatal error: array cannot be bridged from Objective-C
なぜこれが機能しないのですか?コンパイラは必要なすべての情報を持っていますが、Objective-C がそれと何をしなければならないかはまったくわかりません。私のプロジェクトには Swift ファイルしか含まれておらず、これらの配列はフレームワーク メソッドに出入りしていません。にブリッジする必要がありますNSArray
。