我正在尝试创建一个协议(protocol),其中一个方法将返回一个选择器字典。但是我遇到了一个问题......
协议(protocol)代码如下:
@objc public protocol MazeProtocol: AnyObject {
@objc static func configurations() -> [String:Selector]
}
这是我得到的编译器错误:
MazeTableViewController.swift:12:24: 方法无法标记为@objc,因为其结果类型无法在 Objective-C 中表示
如果我删除方法前面的@objc
,我会得到类似的错误。
最佳答案
嗯[String: Selector]
是Dictionary<String, Selector>
这是一个结构并且结构不能在 Objective-C 中表示,所以你需要一个 NSDictionary
@objc public protocol MazeProtocol: AnyObject {
@objc static func configurations() -> NSDictionary
}
关于返回选择器字典的 Swift 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53448324/