Xcode 方法';setChecked';使用Objective-C选择器';setChecked:';与'的setter冲突;选中';使用相同的Objective-C选择器
我已经创建了从UIButton继承的自定义类 在该类中,我创建了一个函数,定义如下:Xcode 方法';setChecked';使用Objective-C选择器';setChecked:';与'的setter冲突;选中';使用相同的Objective-C选择器,xcode,function,swift,compiler-errors,Xcode,Function,Swift,Compiler Errors,我已经创建了从UIButton继承的自定义类 在该类中,我创建了一个函数,定义如下: func setChecked(checked:Bool){ self.checked = checked if checked { buttonImageView.image = UIImage(named: "radioSelected.png") } else { buttonImageView.image
func setChecked(checked:Bool){
self.checked = checked
if checked {
buttonImageView.image = UIImage(named: "radioSelected.png")
} else {
buttonImageView.image = UIImage(named: "radioUnselected.png")
}
}
在我将xCode更新到6.1.3之前,它一直运行良好
现在,我在函数定义行中不断收到错误消息:
方法“setChecked”与Objective-C选择器“setChecked:”冲突
使用相同的Objective-C选择器的“已检查”设置器
我已经尝试过重写它,但后来我得到一个错误,说“方法不重写其超类中的任何方法”
有人知道我如何正确地解决它吗
(我不想更改函数的名称。)似乎发生了名称冲突。还有几个人有同样的问题: 尝试将函数重命名为类似以下内容:
func checkedSetter(checked:Bool){
函数名与属性冲突。如何通过观察属性以更优雅的方式实现它?这将明确显示值如何更改,以及值更改的副作用
class RadioButton: UIButtom {
var checked: Bool = false {
didSet {
buttonImageView.image = UIImage(named: checked ? "radioSelected.png" : "radioUnselected.png")
}
}
}
谢谢您的回答,但我提到我不想更改函数的名称。我想了解这个名称冲突发生的位置,如果实际上这里是名称冲突(我在代码中找不到),我想修复它。@RSC您找到发生这种情况的原因了吗?可能是