objective 取消执行的延迟函数 -- 线程

来源:互联网 发布:佛山市2015年经济数据 编辑:程序博客网 时间:2024/05/18 14:26

//延迟执行

[self performSelector:@selector(hidenSelf) withObject:nil afterDelay:2];

 

//取消延迟执行

[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(hidenSelf) object:nil];


访问官网:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html

Sending Messages

  • – performSelector:withObject:afterDelay:
  • – performSelector:withObject:afterDelay:inModes:
  • – performSelectorOnMainThread:withObject:waitUntilDone:
  • – performSelectorOnMainThread:withObject:waitUntilDone:modes:
  • – performSelector:onThread:withObject:waitUntilDone:
  • – performSelector:onThread:withObject:waitUntilDone:modes:
  • – performSelectorInBackground:withObject:
  • + cancelPreviousPerformRequestsWithTarget:
  • + cancelPreviousPerformRequestsWithTarget:selector:object:


下面给出一个例子:

- (IBAction)Start:(id)sender {
    [self performSelector:@selector(doSomething:)];
    //[self doSomething:nil];
    //[self per
    [self performSelectorInBackground:@selector(doSomething:) withObject:nil];
   
}
-(void)doSomething:(id)inputData
{
    if([NSThread isMainThread])
    {
        NSLog(@"in main thread");
       
    }
    else {
        NSLog(@"not in main thread");
    }
    NSLog(@"kkkkk");
}

原创粉丝点击