美文网首页
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