addTarget calling wrong method on some device.


(c1708) #1

Hi!

Currently I’m implementing my app in Swift with latest Xcode.

···

On my application’s UIViewController I wrote:

if (Util.isFeatureEnabled(Feature.X)) {
      let xButton = UIButton()
      self.xButton = xButton
      ….
      xButton.addTarget(self, “xButtonTouched:”…)
      view.addSubview(xButton)
}
let yButton = UIButton()
self.yButton = yButton
yButton.addTarget(self, “yButtonTouched:” …)
….
fun yButtonTouched(sender: UIButton) {
….
}

And I forget implement xButtonTouched function,
But feature-X is always disable(by some business reason),
so I think xButton never showed Up and Above code working correctly.
And working correctly on my device(iPhone 6 Plus) as expected.

But, I noticed on some others device(which include iPhone 6 Plus)
Get called xButtonTouched: when yButton Touched, and raise "unrecognized selector sent to instance” error.

I can’t understand why this error happened. Is error depend on device? Or nasal demon?