Runloop開啟常駐線程

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) NSThread *thread;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(10, 400, 330, 34);
    [button addTarget:self action:@selector(click:)
     forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor grayColor];
    [self.view addSubview:button];
    self.thread = [[NSThread alloc] initWithTarget:self
                                          selector:@selector(excute:)
                                            object:nil];
    [self.thread start];
}

- (void)excute:(id)sender {
    @autoreleasepool {
        NSRunLoop *loop = [NSRunLoop currentRunLoop];
        [loop addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
        [loop run];
    }
}

- (void)click:(id)sender {
    [self performSelector:@selector(excute:)
                 onThread:self.thread
               withObject:nil
            waitUntilDone:NO];
}

@end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容