I'm not familiar with touchesBegan:withEvent:view: or touchMoved:withEvent:view:. These methods are not documented.

The methods you should be overriding in your UIResponder subclass are touchesBegan:withEvent:, touchesMoved:withEvent: and touchesEnded:withEvent:.

Besides that, you are doing work that has already been done for you. You can send the message timestamp to a UITouch and it will return you the number of seconds since system startup, which is not only less work than creating a NSDate and computing the time interval since the epoch, but your deltas will be more precise.

Also, why are you asking the event for all of its touches and then pulling any object from it? Send anyObject to the touches NSSet sent to you in that method.

Those wouldn't cause much of a speed problem, but they are things you should probably know. I don't know why your touch events are sluggish. I don't even see how your methods are being called, but there could be some undocumented API you are using. The touchesMoved method you have should never be called, as it doesn't match at all (touchMoved should be touchesMoved).

Not sure what the specific problem is here, but there are a ton of subtle differences/bugs between the actual device and the simulator. From now on, you really are going to want to test early and often on the real device.