3

我有以下代码

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。我希望无缝过渡,但显然这不是我得到的。

在此处输入图像描述

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

4

1 回答 1

1

我的猜测是,extension您的项目或工作区的目标之一中的某个地方与 UIButton 混淆,以某种方式使其瘫痪。(这是可能的事实很清楚,我认为这是一个错误;请参阅https://bugs.swift.org/browse/SR-2935和相关的副本,包括https://bugs.swift.org/ browse/SR-3228 ,并在https://bugs.swift.org/browse/SR-8010上挖掘。)

您可以通过子类UIKit.UIButton化而不是 simple来滑动扩展UIButton。关于这个工作的原因,请参阅我的重复错误报告中的评论讨论。当扩展以这种方式运行时,它会重载方法,您可以使用模块命名空间来区分没有重载的 UIButton。

于 2018-09-19T01:17:44.537 回答