从XCode 6.2升级到XCode 7.0.1后,我收到此错误消息。
/Users/ZERO/Documents/Xcode/XXXXX/Library/SegmentedControl/SegmentedControl.swift:124:10: 方法' beginTrackingWithTouch(:withEvent :)'与Objective-C selector' beginTrackingWithTouch:withEvent:'与方法冲突 ' beginTrackingWithTouch(:withEvent:方法)'来自超级' UIControl' 使用相同的Objective-C选择器
我的代码:
func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
let location = touch.locationInView(self)
var calculatedIndex : Int?
for (index, item) in labels.enumerate() {
if item.frame.contains(location) {
calculatedIndex = index
}
}
if calculatedIndex != nil {
selectedIndex = calculatedIndex!
sendActionsForControlEvents(.ValueChanged)
}
return false
}
答案 0 :(得分:2)
它具有几乎相同签名的方法在UIContol
中定义。
beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent?)
区别在于event
参数是可选的。
所以编译器无法区分它们。 。
如果您要覆盖beginTrackingWithTouch()
方法,可以将事件parameter
的类型更改为UIEvent?
,并添加override
注释,如下所示:< / p>
override func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent?) -> Bool {
...
return false
}