无法识别的选择器发送到实例,UISlider swfit3

Posted

技术标签:

【中文标题】无法识别的选择器发送到实例,UISlider swfit3【英文标题】:unrecognized selector sent to instance , UISlider swfit3 【发布时间】:2017-03-23 21:22:35 【问题描述】:

我正在使用 UISlider,我想识别值的变化:

var sliderGeofence: UISlider!

在我的viewDidLoad()

 self.sliderGeofence = UISlider(frame: CGRect(x: 20, y: 20, width: self.view.frame.size.width - 50, height: 50))
        self.sliderGeofence?.maximumValue = 100000
        self.sliderGeofence?.minimumValue = 500
        self.sliderGeofence?.value = 100
        self.sliderGeofence?.isUserInteractionEnabled=true
        self.sliderGeofence?.addTarget(self, action: Selector("geofenceValueChange:"),for: UIControlEvents.valueChanged)
        gmsMap.addSubview(self.sliderGeofence!)
        sliderGeofence?.isHidden = true

我的换值方法:

 @IBAction func geofenceValueChange(sender: AnyObject)
    
    print("entro")
    

应用程序会加载滑块,但是,当我更改其值时,会发生这种情况:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[MocaAdmin.FirstViewController geofenceValueChange:]: 无法识别的选择器发送到实例 0x7fca61511480'

我做错了什么?

【问题讨论】:

尝试将添加目标更改为:self.sliderGeofence?.addTarget(self, action: #selector(geofenceValueChange:), for: UIControlEvents.valueChanged) @Priyal,你已经成功了。请参阅下面的 Rashwan 的回答。选择器的 Swift 形式为 geofenceValueChange(_:) 【参考方案1】:

将目标更改为以下内容:

sliderDemo.addTarget(self, action: #selector(geofenceValueChange(_:)), for: .valueChanged)

然后函数来:

func geofenceValueChange(_ sender:UISlider) 
    print("entro")

函数中不需要@IBAction

【讨论】:

【参考方案2】:

你应该像这样使用选择器:

self.sliderGeofence?.addTarget(self, action: #selector(FirstViewController.geofenceValueChange(_:)), for: .valueChanged)

这样,Xcode 甚至会建议使用功能并自动完成您的输入,以确保一切正常。

希望有帮助!

【讨论】:

以上是关于无法识别的选择器发送到实例,UISlider swfit3的主要内容,如果未能解决你的问题,请参考以下文章

无法识别的选择器发送到实例

[UICollectionViewCell imageView]:无法识别的选择器发送到实例

UISwipeGesture '发送到实例的无法识别的选择器'

无法识别的选择器发送到实例

无法识别的选择器发送到数组中的实例[重复]

无法识别的选择器发送到实例 Objective-C