-2

I am making a game similar to Fruit Ninja using Swift 2.0 in Xcode v7.0. However, in the touchesBegan, touchesMoved, and touchesCancelled override functions, I am getting the three following errors:

"Value of type 'Set' has no member 'anyObject'" comes up twice and "Value of optional type 'Set' not unwrapped; did you mean to use "!" or "?"?" comes once.

Here is the code

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    let touch = touches.anyObject() as UITouch
    let location = touch.locationInNode(self)

    activeSlicePoints.append(location)
    redrawActiveSlice()

    activeSliceBG.removeAllActions()
    activeSliceFG.removeAllActions()

    activeSliceBG.alpha = 1
    activeSliceFG.alpha = 1

}

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
    let touch = touches.anyObject() as UITouch
    let location = touch.locationInNode(self)

    activeSlicePoints.append(location)
    redrawActiveSlice()

}

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
    activeSliceBG.runAction(SKAction.fadeOutWithDuration(0.25))
    activeSliceFG.runAction(SKAction.fadeOutWithDuration(0.25))

}

override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
    touchesEnded(touches, withEvent: event)
}

Here is an image of on what lines the errors appear

All help appreciated. Thanks in advance.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
Yajat
  • 3
  • 5

1 Answers1

0
let touch =  touches.first as? UITouch

This will get you the first touch object.

Use it like:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if let touch = touches.first {
        // ...
    }
    super.touchesBegan(touches, withEvent:event)
}
iAnurag
  • 9,286
  • 3
  • 31
  • 48