看一下通知,它们旨在像这样一般分发到多个实例。请参阅NSNotificationCenter
.
正如您似乎误解的那样,通知不仅仅针对硬件事件。它们是一种用于分发信息的通用广播机制,就像委托是一种允许单个对象管理另一个对象行为的通用机制一样。
换句话说,您的通信处理程序应该发布状态更改通知,并且您的其他控制器应该都注册以接收该通知,并且可以响应但适合他们。
发布示例;当你的文件完成加载时放这个:
[[NSNotificationCenter defaultCenter] postNotificationName:@"PDLAssetManagerAssetFileLoaded" object:self];
并且在加载完成时需要更新自身的每个控制器中,放置:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loadComplete:) name:@"PDLAssetManagerAssetFileLoaded" object:nil];
whereloadComplete:
是将通知作为参数的方法,并执行您需要它执行的任何操作。您可以使用我在这里忽略的 userInfo 字典传递额外的数据。 热点提示:将通知名称字符串设为常量;为了简洁起见,我跳过了这个。