iphone - 从 appdelegate 中的线程跨多个 View Controller 触发事件

标签 iphone objective-c multithreading event-handling

我有一个 NSAutoreleasePool 线程,旨在从 Web 服务中提取信息,我的 Web 服务代码工作得很好,我可以触发线程在 View Controller 中启动而不会出现任何问题,事实上它工作得很好.

我想:

  • 将线程实例化移动到 appDelegate - 简单!
  • 让它定期运行并以某种方式告诉它下面的 View Controller (5 - 10) 如果下载了新信息
  • 有能力在调度程序之外手动执行线程

我可以使用 performSelectorOnMainThread 在 appdelegate 上启动一个方法,但是如何让我的 subview Controller “订阅”appdelegate 上的一个方法?

最佳答案

使用 NSNotificationCenter 你可以很好地发布通知 :D 这样,无需 appDelegate 通知其他类,其他类就可以“订阅”他们需要的通知。

此外,我会保持线程处于事件状态,每次生成一个新线程的成本很高,只有经常生成时才会这样做。我建议使用 GCD ( iOS 4+ )

关于iphone - 从 appdelegate 中的线程跨多个 View Controller 触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784378/

相关文章:

iphone - 如何动态添加Section和TableView Cell

iphone - 如何改进 2D 横向卷轴 iPhone 游戏的 "smoothness"?

iphone - 必须存储太多图像文件

objective-c - 如何慢慢停止 CCActions?

java - Liquibase liquibase.exception.ValidationFailedException : Validation Failed:

iphone - Obj-C 中的多值枚举

iphone - 一种简单、干净的方式来切换/交换 View ?

ios - 如何检查WIFI按钮是否已启用(iOS)

c - PTHREAD_COND_INITIALIZER - 函数 pthread_cond_wait() 分支到慢速路径

Java:基本多线程编码