2017-03-15 14 views
0

イムに引数を渡す:「#selector」のは、しかし、私はこのエラーが発生しました引数を渡すアクションで長押しジェスチャー認識を作成しようとセレクタアクション

引数を参照していません「@objc」メソッド、プロパティ、 または初期化子

別のポストは運で示唆したように、私がこれまで試しただけの事はremoveDate関数の先頭に@objcを追加しています。あなたはGestureRecognizerアクションで他のオブジェクトを渡すことはできません

let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(removeDate(deleteIndex: 3))) 
      longPressRecognizer.minimumPressDuration = 1.00 
      cell.addGestureRecognizer(longPressRecognizer) 

func removeDate(deleteIndex: Int) { 
    if deleteIndex != 0 { 
     dates.remove(at: deleteIndex - 1) 
    } 
} 

答えて

1

、それはあなたが他のだけUIGestureRecognizerオブジェクトは何も渡しませんすることができます。あなたが長いプレスセルのインデックスを望むなら、あなたはこのように試すことができます。

最初にセットUILongPressGestureRecognizerこのようなアクション。

let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(removeDate(_:))) 
longPressRecognizer.minimumPressDuration = 1.00 
cell.addGestureRecognizer(longPressRecognizer) 

このように、removeDateアクションを設定しました。

func removeDate(_ gesture: UILongPressGestureRecognizer) { 
    if gesture.state == .began { 
     let touchPoint = gesture.location(in: self.tableView) 
     if let indexPath = self.tableView.indexPathForRow(at: touchPoint) { 
      print(indexPath) 
      dates.remove(at: indexPath.row) 
      self.tableView.reloadData() 
     } 
    } 
} 
+0

This Worked Great Thank You !!! – XvKnightvX

+0

@XvKnightvXようこそメイト:嬉しいことにあなたのために:) –

関連する問題