2017-03-23 11 views
-1

をswfit3認識されていないセレクタがインスタンスに送信され、UISliderは、私がUISliderで働いていると私は、値の変化を認識したい

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に送信されました'違う?

+1

add targetを変更してみてください: 'self.sliderGeofence?.addTarget(self、action:#selector(geofenceValueChange :)、for:UIControlEvents.valueChanged)' – Priyal

+1

@Priyal、あなたはそこに途中です。下のRashwanの答えを見てください。セレクタのSwift形式は、 'geofenceValueChange(_ :)' –

答えて

3

変更し、次のターゲット:

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はさえ、物事が動作することを確認するためにあなたのタイピングを使用して自動補完する機能を提案します。

希望に役立ちます!

関連する問題