Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 295877
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T06:29:50+00:00 2026-05-12T06:29:50+00:00

If I have a view with a performSelector set to fire after a delay:

  • 0

If I have a view with a performSelector set to fire after a delay:

[self performSelector:@selector(generateBall) withObject:NULL afterDelay:1.5];

…but I removeFromSuperview that view before the selector fires (for example, due to user interaction), then my app crashes.

Is there a way to kill the delayed selector in the dealloc method for that view?

EDIT:

I’ve tried both:

[[NSRunLoop mainRunLoop] cancelPerformSelector:theBall target:self argument:nil];

and

[[NSRunLoop currentRunLoop] cancelPerformSelector:theBall target:self argument:nil];

and while both work (allowing me to load a new view), loading the previous view ends up giving me a gray screen.

I haven’t been able to find any tutorials or other information about cancelPerformSelector other than those Apple docs that were listed, and the documentation on threads and run loops seem to be very convoluted (mostly because they don’t list working code samples, which would make it easier for me to step through and understand what was going on).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T06:29:50+00:00Added an answer on May 12, 2026 at 6:29 am

    Because I’m using performSelector:afterDelay, the only way I’ve been able to properly “kill” any previously requested but not launched functionality is using:

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:theBall object:nil];
    

    The following code sample shows how this works (create a new View template XCode project called “select”, and replace the selectViewController.h file with this):

    #import "selectViewController.h"
    
    @implementation selectViewController
    
    UILabel *lblNum;
    UIButton *btnStart, *btnStop;
    int x;
    
    - (void) incNum {
        x++;
        lblNum.text = [NSString stringWithFormat:@"%i", x];
        [self performSelector:@selector(incNum) withObject:NULL afterDelay:1.0];
    }
    
    - (void) stopCounter {
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(incNum) object:NULL];
    }
    
    - (void)viewDidLoad {
        x = 0;
    
        lblNum = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
        lblNum.textAlignment = UITextAlignmentCenter;
        [self.view addSubview:lblNum];
    
        btnStart = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btnStart.frame = CGRectMake(40, 270, 240, 30);
        [btnStart setTitle:@"start" forState:UIControlStateNormal];
        [btnStart addTarget:self action:@selector(incNum) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btnStart];
    
        btnStop = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btnStop.frame = CGRectMake(40, 310, 240, 30);
        [btnStop setTitle:@"stop" forState:UIControlStateNormal];
        [btnStop addTarget:self action:@selector(stopCounter) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btnStop];
    
        [self performSelector:@selector(incNum) withObject:NULL afterDelay:1.0];
        [super viewDidLoad];
    }
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
    }
    
    - (void)viewDidUnload {
    }
    
    - (void)dealloc {
        [lblNum release];
        [super dealloc];
    }
    
    @end
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i have view like 'home/details/5', it can be access by anonymous user. but there
I have to move some code from viewDidAppear to a new selector to fire
I have view controller, into the view i have put a table view, and
I have a view that has a list of jobs in it, with data
I have a view using a master page that contains some javascript that needs
I have a view user control that can post form. This control can be
We have a View (call it X) that is the base view called by
I have a view that I want to add some custom drawing to. I
I have a View that can vary significantly, depending on the 'mode' a particular
I have a view which contains a form, the form posts and the data

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.