编程中,总会遇到各种传值问题,而使用通知传值便捷高效,且工程中全局监听,是码农们较为常用的传值方式,比如我们需要在工程中的某个界面获取数据,如果我们通过代理或属性传值可能会转很多次,这个时候使用通知就能很好地解决这个问题
需要获取数据类一:增加一个观察监听中心
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getDataInfo:) name:@"getData" object:nil];
传输数据类二:发送通知(注意name一定要与监听中心name相同,否则不能完成传值)
[[NSNotificationCenter defaultCenter] postNotificationName:@"getData" object:@"数据"];
一旦该类走到这个方法,就发送通知到类一
类一的通知方法:
- (void)getDataInfo:(NSNotification *)info{
//这里的info.object即为我们需要的数据,可以用一个该类的属性接收再使用
}
注意:使用了通知一定要下意识的移除该通知,否则有可能造成工程错乱,且不好找错误原因
移除通知方法:
//所有本界面执行的通知事件(即类一中),要在释放前移除
- (void)dealloc{
//移除所有通知事件
[[NSNotificationCenter defaultCenter] removeObserver:self];
//一个个移除通知事件
//[[NSNotificationCenter defaultCenter] removeObserver:self name:@"getData" object:nil]
}