Showing an alert view after a couple of seconds

Go To


I'm trying to make an alert show three seconds after the user touches a rounded rectangle button but it doesn't work when I run the app (but Xcode says "no issues").

This is my .h file:

@interface ViewController : UIViewController {


and this is my implementation file:

@implementation ViewController

-(IBAction)timerAlert:(id)sender {

    [NSTimer scheduledTimerWithTimeInterval:3 target:sender selector:@selector(showAlert) userInfo:nil repeats:NO];

-(void)showAlert {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Three seconds have elapsed" message:@"Please return to the app" delegate:self cancelButtonTitle:@"Return" otherButtonTitles:nil, nil];
    [alert show];

and this is the error message I get:

2012-04-04 19:25:42.833 DisplayAfterTime[740:f803]
-[UIRoundedRectButton showAlert]: unrecognized selector sent to instance 0x6b74220 
2012-04-04 19:25:42.837 DisplayAfterTime[740:f803]
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIRoundedRectButton showAlert]: unrecognized selector sent to instance 0x6b74220'
*** First throw call stack: (0x13c7022 0x1558cd6 0x13c8cbd 0x132ded0 0x132dcb2 0x94deb6 0x139b936 0x139b3d7 0x12fe790 0x12fdd84 0x12fdc9b 0x12b07d8 0x12b088a 0x11626 0x1edd 0x1e45) terminate called throwing an exception

so what am I doing wrong?

2012-04-04 17:35
by user1253207


You're setting up the timer to send to the wrong target. It should be self.

2012-04-04 17:50
by matt