美文网首页
看过的文章

看过的文章

作者: 寂寞先森666 | 来源:发表于2019-07-12 18:11 被阅读0次

KVO 底层本质:https://www.jianshu.com/p/5e3bb16e4d1b
第一、weakSelf 的宏定义写法

#define WeakObj(obj) __weak typeof(obj) o##Weak = obj;

第二、为什么子线程 runLoop 无法开启

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

dispatch_async(dispatch_get_global_queue(0, 0), ^{
        NSLog(@"1");
        [[NSRunLoop currentRunLoop]run];
        [self performSelector:@selector(test) withObject:nil afterDelay:0];
        NSLog(@"2");
    });
}
-(void)test
{
    NSLog(@"3");
}

打印结果:
2019-10-12 10:16:58.930673+0800 测试 switch[13229:1170138] 1
2019-10-12 10:16:58.930969+0800 测试 switch[13229:1170138] 2

因为run方法只是尝试想要开启当前线程中的runloop,但是如果该线程中并没有任何事件(source、timer、observer)的话,并不会成功的开启

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

dispatch_async(dispatch_get_global_queue(0, 0), ^{
        NSLog(@"1");
        [self performSelector:@selector(test) withObject:nil afterDelay:0];
         [[NSRunLoop currentRunLoop]run];
        NSLog(@"2");
    });
}

打印结果:
2019-10-12 10:20:55.758207+0800 测试 switch[13268:1174223] 1
2019-10-12 10:20:55.758506+0800 测试 switch[13268:1174223] 3
2019-10-12 10:20:55.758620+0800 测试 switch[13268:1174223] 2

第三、performSelector: xxx onThread: xxx withObject: xxx waitUntilDone: xxx 的 waitUntilDone 的作用

它的作用是 是否阻塞当前所执行的线程

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    NSLog(@"start");
   [self performSelector:@selector(helloAction) onThread:[NSThread currentThread] withObject:nil waitUntilDone:YES];
    NSLog(@"end");
}
-(void)helloAction
{
    NSLog(@"等待5秒");
    sleep(5);
}

打印结果:
2019-10-12 15:27:56.569041+0800 测试 switch[15403:1375791] start
2019-10-12 15:27:56.569226+0800 测试 switch[15403:1375791] 等待5秒
.
.
.
2019-10-12 15:28:01.569464+0800 测试 switch[15403:1375791] end

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    NSLog(@"start");
    [self performSelector:@selector(helloAction) onThread:[NSThread       
    currentThread] withObject:nil waitUntilDone:NO];
    NSLog(@"end");
}
-(void)helloAction
{
    NSLog(@"等待5秒");
    sleep(5);
}

打印结果:
2019-10-12 15:32:58.978556+0800 测试 switch[15455:1380883] start
2019-10-12 15:32:58.979096+0800 测试 switch[15455:1380883] end
2019-10-12 15:32:58.979548+0800 测试 switch[15455:1380883] 等待5秒

相关文章

  • 看过的文章

    KVO 底层本质:https://www.jianshu.com/p/5e3bb16e4d1b第一、weakSel...

  • 学习webpack看过的文章

    1.Webpack入门,介绍比较全面 入门Webpack,看这篇就够了 2.webpack-dev-server相...

  • 查看过的文章记录

    在此记录查看过的文章 VueX(Vue状态管理模式)[https://www.jianshu.com/p/2e59...

  • 你看过会后悔的文章

    这是一个黑加工厂视频截图,他们的产品就是无骨鸡爪。 是怎么做到的无骨的?用人嘴啃骨头,据说一个人一天可以啃200斤...

  • 简书新变化

    刚才更新简书的版本,突然发现简书看过的文章,题目会变为灰色,这样就让我很容易可以辨别自己看过的文章,没有看过的文章...

  • 看过的文章,附带自己的思考

    上班总是单调重复,我该鼓起勇气换工作吗? | 《你问我答》第2期 看完文章的一点反思。 我为什么要换工作? 是钱太...

  • 那些年看过的好文章

    1.自定义Behavior的艺术探索-仿UC浏览器主页 2.应用桌面图标小红点显示 3.流程步骤指示器 4.And...

  • 我看过无数关于自律的文章

    “听过很多道理,却仍旧过不好这一生” 我想这句话能体现我现在的心境。看过的鸡汤不少,听过的故事也不少。却还是间接的...

  • 回看过去写过的文章

    有时候,在简书里看别人的文章看够了,会回过头来看看自己的文章。这种感觉别有另一翻滋味。在看到一篇关于参加写作培训后...

  • 17/70 感谢你关注并喜欢我的文章,更希望能看到你的文章一起成

    谢谢你看过我的文章谢谢你看过我的文章并喜欢它谢谢你看过我的文章并赞赏谢谢你关注了我的简书 你的关注、阅读、喜欢让我...

网友评论

      本文标题:看过的文章

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