私はSwiftプロトコルを宣言しました:
protocol Option {
var name: String { get }
}
このプロトコルの複数の実装(一部のクラス、一部の列挙型)を宣言します。
次のように宣言されたプロパティを持つビューコントローラーがあります。
var options: [Option] = []
このプロパティをOption
別のVCのプロトコルを実装するオブジェクトの配列に設定しようとするとprepareForSegue
、ランタイムエラーが発生します。
fatal error: array cannot be bridged from Objective-C
なぜこれが機能しないのですか?コンパイラーには必要なすべての情報があり、Objective-Cがそれとどう関係しているのかまったくわかりません。私のプロジェクトにはSwiftファイルのみが含まれており、これらの配列は、それらをブリッジする必要がありますNSArray
。
@objc
プロトコルに付加しようとしましたか?stackoverflow.com/a/28029568/377369