Swift 4.2中的自定义类UIButton错误。 UIButton有什么新功能?

时间:2018-09-18 19:18:51

标签: ios swift xcode uibutton swift4.2

我有以下代码

import UIKit

class CustomButton: UIButton {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.theme_setTitleColor(GlobalPicker.customButtonTextColor, forState: .normal)
        self.theme_setTitleColor(GlobalPicker.customButtonDisabledTextColor, forState: .disabled)
        self.theme_backgroundColor = GlobalPicker.primaryColor

        self.layer.cornerRadius = self.frame.height/4.0
        self.clipsToBounds = true

    }

    override init(frame: CGRect) {
        super.init(frame: frame)

        self.layer.cornerRadius = self.frame.height/2.0
        self.clipsToBounds = true
    }
}

在尝试使用Xcode 10生成此代码时遇到错误。该代码在Xcode 9和Swift 4.0上正常工作。我原本希望实现无缝过渡,但显然那不是我要得到的。

enter image description here

这是Xcode 10错误吗?还有其他人遇到类似的情况吗?

1 个答案:

答案 0 :(得分:1)

我的猜测是,在项目或工作区的目标之一中某处有一个last,它以某种方式破坏UIButton的方式与UIButton混淆。 (事实是很可能的,我认为这是一个错误;请参阅https://bugs.swift.org/browse/SR-2935及其相关副本,包括https://bugs.swift.org/browse/SR-3228,并在https://bugs.swift.org/browse/SR-8010挖掘。)

您可能可以通过继承extension而不是简单的UIKit.UIButton来扩展扩展。出于这个原因,请参阅重复的错误报告中的评论讨论。当扩展以这种方式运行时,它会重载方法,并且您可以使用模块名称空间来区分没有重载的UIButton。