Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Build a Photo Browser iPhone App Gestures Triple-Tap Gesture Recognizer.

Ryan Oldford
Ryan Oldford
11,992 Points

Photo Bombers Stage 4 Code Challenge problems

I'm having a problem with the triple-tap gesture recognizer code challenge. My code seems fine, but it's saying there's a compiler error (with no other explanation). What am I doing wrong?

Here's my code:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(like)];
tap.numberOfTapsRequired = 2;
[self addGestureRecognizer:tap];

Edit: Okay, I've tried everything now and it's still not working:

  • I actually had set numberOfTapsRequired to 3, but I forgot to write it in here.
  • I've used self and self.view in both the first and third line (every combination)
  • I've tried using @selector(like), @selector(like:), and nil in line 1.
  • I've even tried removing line 3, since it's not really in the instructions as written.

Nothing has worked, and every time I just get "compiler errors" in the code challenge. I'm beginning to think that something on the backend is broken. Is there something stupid that I've missed? I can't see how I'm doing anything wrong...

Edit 2: Turns out the answer was very simple. I was copying from the Xcode files I'd been making as I followed along with the videos, and it turns out that was going beyond what the Code Challenge was asking for. You LITERALLY just need to alloc/init the UITapGestureRecognizer and set numberOfTapsRequired. Nothing else! :)

3 Answers

Thomas Nilsen
Thomas Nilsen
14,957 Points

Also, I you want to be able to triple tap, set the tap.numberOfTapsRequired = 3, not 2 :)

Guillaume Maka
PLUS
Guillaume Maka
Courses Plus Student 10,224 Points
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(like:)];

you forgot the ":" after "like"

I think you need to add the Gesture to the view, therefore the last line of code needs a small tweak [self.view addGestureRecognizer:tap] .