2015-11-12 48 views
0

我已經得到了class Menu: SKScene,那麼func touchesBegan它裏面,給了我的錯誤:與:「withEvent :)的touchesBegan(從超類方法法的衝突 - 覆蓋給出錯誤

方法Objective-C的選擇 '的touchesBegan:withEvent:方法' 與方法衝突 '的touchesBegan(:withEvent :)' 從超類的UIResponder'具有相同的目標C選擇

無論如何,如果在我的前添加超控功能說:

方法不覆蓋任何超類中的方法。

任何想法?整個代碼:

import SpriteKit 

class Menu: SKScene { 




var title : SKLabelNode? 
var start : SKLabelNode? 

override func didMoveToView(view: SKView) { 

    backgroundColor = SKColor.whiteColor() 

    self.title = SKLabelNode(fontNamed: "Chalkduster") 
    self.start = SKLabelNode(fontNamed: "Chalkduster") 

    self.title!.name = "title" 
    self.start!.name = "new" 


    self.addChild(self.title!) 
    self.addChild(self.start!) 
} 

    func touchesBegan(touches: NSSet, withEvent even: UIEvent) { 

     self.menuHelper(touches) 
    } 

    func menuHelper(touches: NSSet) { 
     for touch in touches { 
      let nodeAtTouch = self.nodeAtPoint(touch.locationInNode(self)) 
      if nodeAtTouch.name == "title" { 
       print("Title pressed") 
      } 
      else if nodeAtTouch.name == "new" { 
       print("Start pressed") 
      } 
     } 

    } 

回答

2

簽名(從文檔)此方法是...

func touchesBegan(_ touches: Set<UITouch>, withEvent event: UIEvent?) 

touchesSet(不NSSetUITouch對象和event是一個可選UIEvent

您還需要重寫它...

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    self.menuHelper(touches) 
} 
+0

非常感謝您!仍在學習基礎知識。 – ffritz

相關問題