美文网首页
KVO与线程的问题

KVO与线程的问题

作者: 西门丨不吹雪 | 来源:发表于2018-12-04 14:54 被阅读16次

1.问题:KVO监听方法可以在子线程吗?

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change: 
(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
{
NSLog(@"%@",[NSThread currentThread]);
NSLog(@"%ld",_person.age);
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[NSThread detachNewThreadWithBlock:^{
    NSLog(@"%@",[NSThread currentThread]);
    _person.age ++;
}];
}

打印结果:

   <NSThread: 0x600003c890c0>{number = 3, name = (null)}
   <NSThread: 0x600003c890c0>{number = 3, name = (null)}

总结:
将修改对象属性过程放在子线程内执行,在监听回调方法内获取当前线程同样为子线程.故KVO的响应和KVO观察的值变化是在一个线程上的.

相关文章

  • KVO与线程的问题

    1.问题:KVO监听方法可以在子线程吗? 打印结果: 总结:将修改对象属性过程放在子线程内执行,在监听回调方法内获...

  • iOS崩溃分析及全面监控

    奔溃信息分类 可以通过信号捕获的崩溃信息:数组越界,野指针问题,NSNotification线程问题,KVO 问题...

  • 崩溃

    通过这张图片,我们可以看到, KVO 问题、NSNotification 线程问题、数组越界、野指针等崩溃信息,是...

  • 整理

    KVO的实现原理与具体应用 2.通知 3.iOS多线程----NSOperation 4.iOS多线程----GC...

  • 2022-09-20

    Runloop runtime kvo kvo多线程sdwebimage afnetwork底层原理内存管理定时器...

  • 04. KVO使用,原理,本质

    问题 KVO日常使用 KVO原理(KVO本质是什么) 如何手动触发KVO 直接修改成员变量会触发KVO吗 KVO图...

  • kvo 与 kvc <2>

    8.1: kvo 与 kvc 展开 1:KVO KVO(Key-Value-Observing)键...

  • KVO 线程通讯

    Key-value observing is a mechanism that enables an object...

  • 22.iOS底层学习之多线程原理

    本篇提纲:1、线程与进程2、多线程3、多线程相关面试题4、线程安全问题5、线程与runloop的关系 线程与进程 ...

  • 【IOS开发基础系列】KVO/KVC专题

    1 开发技巧 1.1 常见问题 1.1.1 kvo通知没有发出来问题 KVO通知发起机制: KVO中属性变化后,...

网友评论

      本文标题:KVO与线程的问题

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