您的位置:首页 > 移动开发 > IOS开发

iOS 注册通知之后多次执行响应方法

2015-03-24 18:14 351 查看
//假设 在程序中已经发送了通知 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]方法来
移除通知,或者是在通知响应函数的最后调用该函数移除通知。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS NSNotification