Я объявил протокол 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