#selector 的参数不能引用 属性

Argument of #selector cannot refer to a property

目标是将以下条件更新为 Swift 2.2 语法,建议使用 #selector or explicitly constructing a Selector

if activityViewController.respondsToSelector("popoverPresentationController") {

}

但是,使用下面的替换失败并生成错误 Argument of #selector cannot refer to a property

if activityViewController.respondsToSelector(#selector(popoverPresentationController)) {

}

使用 #selector 执行此检查的正确方法是什么?

您可以使用以下内容:

if activityViewController.respondsToSelector(Selector("popoverPresentationController")) {

}

或者如果您仅定位 iOS

if #available(iOS 8.0, *) {
    // You can use the property like this
    activityViewController.popoverPresentationController?.sourceView = sourceView
} else {

}

或者如果你的代码不限于iOS

#if os(iOS)
    if #available(iOS 8.0, *) {
        activityViewController.popoverPresentationController?.sourceView = sourceView
    } else {

    }
#endif