UPDATE 2
The question in its current form has been answered and accepted even though a problem remains viz. the code now compiles with 0 warnings bu
UIGestureRecognizerDelegate
is declared by UIKit. You can't create your own protocol named UIGestureRecognizerDelegate
; it is a conflicting declaration.
By convention, classes and protocols prefixed with UI are declared by UIKit and you should not declare your own objects and classes with this prefix. Use something like MyGestureRecognizerDelegate