【问题标题】:How do I call a function that I have defined in an extension on a button?如何调用我在按钮扩展中定义的函数?
【发布时间】:2020-03-30 08:55:00
【问题描述】:

我已将以下函数写入我的 UIButton 扩展:

extension UIButton {
func detail(_ font: String, _ fontSize: CGFloat, _ cornerRadius: CGFloat) -> UIButton {
        let button = UIButton()
        button.titleLabel?.font = UIFont(name: font, size: fontSize)
        button.layer.cornerRadius = cornerRadius
        return button
    }
}

但是,当我尝试在 viewDidLoad() 中调用此函数时,出现以下错误:

 override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(theButton)
        theButton.detail("Avenir", 50, 12) // ERROR: Result of call to 'detail' is unused
}

我该如何解决这个问题?这是我第一次编码,我知道我在这里错过了一些琐碎的事情!

【问题讨论】:

    标签: swift uibutton extension-methods


    【解决方案1】:

    欢迎stackoverflow,因为你的函数有返回值,所以出错了。将您的代码更改为:

    let resultButton = UIButton()
    resultButton = theButton.detail("Avenir", 50, 12)
    

    希望对你有帮助...

    【讨论】:

    • 嘿,谢谢,很遗憾,这并没有解决问题。我的代码本身不需要返回值,您对更改我的扩展方法有什么建议,以便我的 viewDidLoad() 中的代码实际上是正确的吗?编辑:对不起,我的错误,你的代码有帮助,谢谢!
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2017-09-07
    相关资源
    最近更新 更多