2015-08-31 53 views
1

我花了2天的時間試圖讓單擊單擊視圖(單擊屏幕中的任意位置)。我嘗試瞭解我能找到的這個問題的每一個變種。裏面的DVC級,對一切@IBActions,重命名視圖作爲@IBAction等我不能讓任何除外其他錯誤:「[UIView的比分:]:無法識別的選擇發送到實例Swift 2 TapGesture錯誤:「發送到實例的無法識別的選擇器」

class DataViewController: UIViewController, UIGestureRecognizerDelegate { 

    var tappy = UITapGestureRecognizer() 
    override func viewDidLoad() { 

     self.tappy = UITapGestureRecognizer(target:self.view, action:"score:") 
     self.tapView!.addGestureRecognizer(self.tappy) 

    } 

} 

func score(sender:UITapGestureRecognizer!) throws { 

    print("tapped") 

} 
+0

刪除'拋出'。 – matt

+1

您還需要傳遞'self'作爲目標,而不是'self.view' – dan

+0

@dan銳利的眼睛 – matt

回答

4

一個問題是您的action:選擇器"score:"與Objective-C在將您的方法聲明爲func score(sender:UITapGestureRecognizer!) throws時看到的內容不相符。它看到"score:error:"。最簡單的解決方案是刪除throws,因爲"score:error:"不能作爲輕擊手勢識別器的操作方法簽名。

此外,正如@dan指出的,score不在self.view中,而是在self中。所以你也需要改變你的target:

+0

謝謝!第一個應用程序,我害怕我把它包裝在錯誤的課程或其他東西中。謝謝您的幫助! –

+1

如果我的回答是正確的,請考慮接受它(點擊答案左邊的複選標記)。當然,你不必這樣做,但我注意到你幾乎從不接受任何答案,這會讓人不願意協助堆棧溢出。 – matt

相關問題