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