1
Livid MOD 如果是因为程序里需要某种定时刷新机制,那么可以把 NSTimer 在 app delegate 的程序完成启动时注册,然后定时 fire 的 selector 里发送 NSNotification,然后如果这个时候需要响应的 view controller 还存在的话,就通过应答这条 NSNotification 来实现吧。
|
2
hitmiss OP 通知中心的实现方式很有启发!
具体一些,我是在使用 performSelector:withObject:afterDelay: 这个函数时遇到的这个问题,我在一个网络吞吐的线程上调用这个函数来延时隐藏一个视图,发现最终该线程销毁,selector 没有被触发。现在是把这个操作挪到主线程上了,但是不知道有什么副作用。 |
3
Kai MOD singleton 里面,dispatch_once 一个定时器,然后用这个定时器发送 notification
|
7
hitmiss OP @Kai 我对 GCD 的机制和 API 不熟悉,刚才粗略看了一眼文档和网上的资料,你提到的 dispath_once 函数常用来线程安全的创建 singleton。但 timer 不是附着在某条线程的 run loop 上么,所在线程被销毁,还是无法保证计时器触发?
|
8
Livid MOD 假设你在做的是一个微博客户端,有一个定时刷新当前用户信息的操作。
在成功获得最新的当前用户信息之后,你希望界面上所有显示用户信息的地方都刷新,那么这个时候最好的做法就是发送 NSNotification,然后所有存活的和显示用户信息有关的 view controller 处理这个 NSNotification。 |