IOS注意之NSNotificationCenter

11 篇文章 0 订阅

Notification

苹果提供通知方式来解除2个模块的耦合。

提供了

1.注册观察者的方法

2.发送通知的方法

3.移除观察者的方法

这里需要注意的是多线程的影响。

通常直接写代码,addObserver或者postNotification,这些都是在UI线程运行的,并且post notification、deliver notification、progress notification过程是同步的,都是在同一个线程完成的。

这时候,如果你想提升性能,那非UI操作就不要在main线程发通知了,在其他线程发送通知,分发处理通知的过程都和post通知的线程是一样的;通常,你可以在后台线程发送通知,分发通知,处理通知,而处理通知时的UI操作可以在main线程完成。

另外,发送异步消息请见NotificationQueue.


ps:

有个疑问,我记得java中在非UI线程更新UI是会报错的。而IOS中,新建NSThread,在此线程更新UI是没错的,并且更新没有延迟,立即刷新;使用GCD则更新UI有延迟。还请明白的同学们下面回复下,我也稍后在看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值