//假设 在程序中已经发送了通知 KNotificationConfirmGetCash
-(void)buttonClicked //按钮点击事件
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(confirmToGetMoneyResponse:) name:KNotificationConfirmGetCash object:nil];
}
-(void) confirmToGetMoneyResponse:(NSNotification *)notify
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"申请提现成功!" message:@"请留意您的银行收款信息,\n5个工作日内您的腰包就会鼓起来。" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
[alertView show];
}
运行结果:第一次按下按钮,alertView出现一次, 第二次按下按钮alertView出现两次,第三次按下按钮alertView出现3次。。。。。以此类推。
原因:在每次点击按钮的时候,按下几次就会注册几次消息,所以就会多次执行函数confirmToGetMoneyResponse
解决方法:(一)通知我们一般情况下都是在-(void) viewWillAppear:(BOOL)animated 方法里面注册,
在-(void) viewWillDisappear:(BOOL)animated;方法里面移除通知
(二)可以在每次注册通知之前使用[[NSNotificationCenter defaultCenter] removeObserver:self]方法来 移除通知,或者是在通知响应函数的最后调用该函数移除通知。