在迁移到Swift 4.0时,我面临着@IBInspectable的一个问题,
open class SVContactBubbleView: UIView
{
@IBInspectable open var dataSource: SVContactBubbleDataSource? //ERROR..!!
@IBInspectable open var delegate: SVContactBubbleDelegate? //ERROR..!!
}
public protocol SVContactBubbleDataSource
{
//Methods here
}
public protocol SVContactBubbleDelegate
{
//Methods here
}出现的错误是:
属性不能标记为@IBInspectable,因为它的类型不能在目标-C中表示。
在Swift 3,它运行得很好。我不明白Swift 4到底出了什么问题。
此外,编译器没有显示任何建议。它只是显示了一个错误消息。
发布于 2017-10-10 10:08:30
在Swift 4中为委托和数据源添加符号@objc (如下面的代码所示)
open class SVContactBubbleView: UIView {
@IBInspectable open var dataSource: SVContactBubbleDataSource?
@IBInspectable open var delegate: SVContactBubbleDelegate?
}
@objc // add notation here
public protocol SVContactBubbleDataSource
{
//Methods here
}
@objc // add notation here
public protocol SVContactBubbleDelegate
{
//Methods here
}这是裁判。具有错误解析的快照:

以下是苹果用于@objc符号的文档-- 议定书-任择议定书要求
https://stackoverflow.com/questions/46600685
复制相似问题