1. ホーム
  2. ios

[解決済み] 「fatal error: array cannot be bridged from Objective-C"-なぜ試すんだ、Swift?

2023-03-10 18:18:36

質問

Swiftのプロトコルを宣言しました。

protocol Option {
    var name: String { get }
}

このプロトコルの複数の実装を宣言します-あるものはクラス、あるものは列挙型。

このように宣言されたプロパティを持つビューコントローラがあります。

var options: [Option] = []

このプロパティを Option プロトコルを実装したオブジェクトの配列に、別の VC の prepareForSegue を使用すると、ランタイムエラーが発生します。

fatal error: array cannot be bridged from Objective-C

なぜこれが動作しないのでしょうか?私のプロジェクトはSwiftファイルだけを含んでおり、これらの配列は、フレームワークのどのメソッドにも出入りしておらず、それらを NSArray .

どのように解決するのですか?

解決策を見つけました。それはかなり... 不満足 しかし、それは動作します。私は、宛先のビューコントローラの配列を設定する場所、私は行います。

destinationViewController.options = options.map({$0 as Option})