In the meantime, I've found the reason for the crash.
When the user lifts a finger, the Pinch recognizer's method still gets called (or if the user doesn't lift both fingers at the same time). The problem is that numberOfTouches
becomes 1 instead of 2. So the index 1 in the method call [recognizer locationOfTouch:1 inView:recognizer.view]
will be out of bounds. So the block of code in my question should only be executed if recognizer.numberOfTouches > 1
.