Swift 方法桥接到 ObjC 时报 type cannot be represented
工程里 Swift
和 Objective-C
混编已经是常态,经常遇到 Objective-C
代码去调用 Swift
里的方法。最新的 Swift
需要手动标注 @objc
才能把方法暴露。(印象中似乎在 Swift 2.x
的时代,是默认暴露)
但经常会遇到 method cannot be marked @objc because the type of the parameter cannot be represented in objective-c
类似的错误,直觉为参数、返回值,无法从 Swift
桥接到 Objective-C
,有时候一眼就知道缺了什么,有时候则要思考半天,这里简单整理一下几种常见的情况。