objective-c - 在 Swift 类中使用类型为 "Selector"的函数参数将使该函数对 Objective-C 不可用

标签 objective-c swift selector

当尝试从我的 Objective-C 代码中使用下面的 Menu 类时,我只能访问 foobar(或参数列表中没有 Selector 类型的任何其他函数),而 addItemWithName 函数不可用(我已经检查了自动生成的 swift 到 objective-c 文件,并且该功能未在菜单界面中列出)。我怎样才能使它工作?

public class Menu : UIView {
    public func foobar() {
        // implementation
    }

    public func addItemWithName(itemName: String, target: AnyObject?, action: Selector?) {
        // implementation
    }
}

最佳答案

问题类型不是 Selector ,它是 Selector? .你不能表达 Optional<Selector>在 ObjC 中,因为 SEL不是对象类型。

关于objective-c - 在 Swift 类中使用类型为 "Selector"的函数参数将使该函数对 Objective-C 不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797599/

相关文章:

ios - 定义完成 block 参数列表错误

ios - viewDidAppear 和 viewDidLoad 初始化位置太晚了

xcode - 无法将类型 'UInt32!' 的值转换为预期参数类型 'UIFontDescriptorSymbolicTraits'

swift - 随机 UIImageView Alpha

objective-c - 是否允许 Objective-C 初始化器共享相同的名称?

java - 我们可以在客户端编程中使用选择器概念吗

android - 在React Native中调用导出的方法

iOS Webrtc - 捕获本地视频流时崩溃

swift - Swift 3.0 中的可玩游戏区

ios - 避免多个 if 子句调用不同的方法