美文网首页
performSelector 调用

performSelector 调用

作者: follow_er | 来源:发表于2022-01-06 19:30 被阅读0次

performSelector是运行时系统负责去找方法,在编译时不会对调用的方法做检查,只有在运行的时候才会检查,如果方法存在就调用,如果放不存在就不会调用。
afterDelay是每10秒运行一次。在当前线程的runloop上执行aSelector消息,这个计时器的默认模式是NSDefaultRunLoopMode。当计时器触发时,会尝试从runloop中取出消息行,如果runloop运行的模式是NSDefaultRunLoopMode,那么就会执行它,如果当前runloop是其他模式,则会等待runloop处于NSDefaultRunLoopMode在运行。
转自:https://www.jianshu.com/p/b4d398ab18e4

if ([self respondsToSelector:@selector(functionname)]) {
        [self performSelector:@selector(functionname) withObject:nil afterDelay:10.f];
    }

注意 当我们使用了 performSelector, 再不需要了的时候需要取消。可以调用下面的方法取消。 这个方法不能放在delloc方法中调用,否则当前类一直无法释放。performSelector需要持有类,才能调用方法,所以需要在delloc前将performSelector需要持有的类释放,才能让类正常释放,可以放在返回的方法"closeSelf"手势返回的监听方法- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer或者页面将要消失的生命周期中- (void)viewWillDisappear:(BOOL)animated,依照当前页面逻辑放在不同的位置上。

[NSObject cancelPreviousPerformRequestsWithTarget:self];

相关文章

网友评论

      本文标题:performSelector 调用

      本文链接:https://www.haomeiwen.com/subject/zborcrtx.html