title: How can I stop a SKAction.repeatActionForever action at a action boundary?
body: <p>I have a sequence of SpriteKit actions that I create and then repeat forever on a node, but that I want to stop eventually. My sequence rotates a disk left, right, and left returning to the original rotation before starting again. However, when I remove the action, it stops without completing and so the original rotation is not restored.</p>
  
  <p>I could save the original rotation state and restore it, but I want to know is there is a way to tell SpriteKit to only interrupt the action at the sequence boundary?</p>
  
  <pre><code>func wiggle() -&gt; SKAction {
      let wiggleLeft = SKAction.rotateByAngle(+0.04, duration: 0.1)
      let wiggleRight = SKAction.rotateByAngle(-0.08, duration: 0.2)
      let wiggleBack = SKAction.rotateByAngle(+0.04, duration: 0.1)
      let wiggle = SKAction.sequence([wiggleLeft, wiggleRight, wiggleBack])
      let wiggleForever = SKAction.repeatActionForever(wiggle)
      return wiggleForever
  }
  
  disk.runAction(wiggle(), withKey: "wiggle")
  ...
  disk.removeActionForKey("wiggle")    // unfortunately stops mid-wiggle
  </code></pre>