【问题标题】:swift 3 perform selector with argument [duplicate]swift 3使用参数执行选择器[重复]
【发布时间】:2017-02-14 13:42:27
【问题描述】:

如何根据函数名 String var 调用函数并将参数传入函数?我试图做到这一点是 Swift 并最终得到它。

【问题讨论】:

    标签: ios swift3 selector performselector


    【解决方案1】:

    在 Swift 3 中 - 入站“参数”为 [String: Any],其中 params["function"] == "getSomeData"

    let funcName = String(format: "%@:", (params["function"] as? String)!)
    let selector = NSSelectorFromString(funcName)
    self.perform(selector, with: params)
    
    func getSomeData(_ params: [String: Any]) {
      print(params)
    }
    

    【讨论】:

    • 您的解决方案有效,但不推荐。 Swift 正在远离从字符串创建选择器。如果 Swift 在不久的将来完全取消此功能,我一点也不感到惊讶。相反,您应该使用 Swift 版本的函数签名,而不是从字符串构建选择器。
    • 推荐的方式是什么?
    • 是的,Duncan C,感谢您的反馈;但抱歉,这不是很有建设性吗?这个建议背后的代码在哪里?
    • @VinuDavidJose 的类符合协议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多