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

来源:互联网 发布:数据的不可否认性 编辑:程序博客网 时间:2024/05/16 15:11



//假设 在程序中已经发送了通知 KNotificationConfirmGetCash


-(void)buttonClicked    //按钮点击事件

{

     

   [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(confirmToGetMoneyResponse:)name:KNotificationConfirmGetCashobject:nil];


-(void) confirmToGetMoneyResponse:(NSNotification *)notify

{

    

      UIAlertView *alertView = [[UIAlertViewalloc]initWithTitle:@"申请提现成功!"             message:@"请留意您的银行收款信息,\n5个工作日内您的腰包就会鼓起来。"delegate:self             cancelButtonTitle:nilotherButtonTitles:@"确定",nil];

           [alertViewshow];

}


运行结果:第一次按下按钮,alertView出现一次,  第二次按下按钮alertView出现两次,第三次按下按钮alertView出现3次。。。。。以此类推。


原因:在每次点击按钮的时候,按下几次就会注册几次消息,所以就会多次执行函数confirmToGetMoneyResponse


解决方法:(一)通知我们一般情况下都是在-(void) viewWillAppear:(BOOL)animated 方法里面注册,

在-(void) viewWillDisappear:(BOOL)animated;方法里面移除通知


(二)可以在每次注册通知之前使用[[NSNotificationCenterdefaultCenter]removeObserver:self]方法来 移除通知,或者是在通知响应函数的最后调用该函数移除通知。

1 0
原创粉丝点击