美文网首页
iOS RunLoop 监听

iOS RunLoop 监听

作者: Geniusn | 来源:发表于2021-09-15 18:05 被阅读0次

    当在主线程刷新页面过于频繁时,容易造成页面卡顿,这时候需要监听主线程的RunLoop,在RunLoop空闲时再去处理UI事件,例如股票类的实时刷新数据。

    #import "ViewController.h"
    #import "SKRunLoop.h"
    
    @interface ViewController () <SKRunLoopDelegate>
    
    /* runloop */
    @property (nonatomic, strong) SKRunLoop * runLoop;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.runLoop.delegate = self;
        
        // 在需要的时候,唤醒runloop,比如:当socket 1s推送一次数据并刷新界面,socket回调方法里面可添加
        [self.runLoop startObserverRefWithTag:1];
    }
    #pragma mark - runLoop回调
    -(void)ResultObserverRefTag:(NSInteger)tag{
        
        if (tag == 1) {
            //处理事件
        }
    }
    //也可使用单例方法
    -(SKRunLoop *)runLoop{
        if (!_runLoop) {
            _runLoop = [[SKRunLoop alloc] init];
        }
        return  _runLoop;
    }
    
    @end
    

    查看Demo:SKRunLoopDemo

    相关文章

      网友评论

          本文标题:iOS RunLoop 监听

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