我有以下代码
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错误吗?还有其他人遇到类似的情况吗?
答案 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。