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]方法来
移除通知,或者是在通知响应函数的最后调用该函数移除通知。
-(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 通知对应的方法多次执行问题
- 31.ios 防止按钮快速点击造成多次响应的避免方法。 取消正在执行中的方法
- ios 防止按钮快速点击造成多次响应的避免方法。
- [iOS-GQiang]注册推送通知方法
- 关于在子线程中在run方法执行完之后通知主线程进行操作的方法。(Toast在子线程中无法使用)
- ios 防止按钮快速点击造成多次响应的避免方法
- ios 防止按钮快速点击造成多次响应的避免方法。
- ios 防止按钮快速点击造成多次响应的避免方法。
- ios 防止按钮快速点击造成多次响应的避免方法
- 异步任务 AsynTask 创建之后可以通过 execute()方法执行多次么?
- ios 防止按钮快速点击造成多次响应的避免方法。
- ios 防止按钮快速点击造成多次响应的避免方法。
- ios 防止按钮快速点击造成多次响应的避免方法。
- iOS 防止按钮多次点击造成多次响应的方法
- ios 防止按钮快速点击造成多次响应的避免方法。
- ios 防止按钮快速点击造成多次响应的避免方法
- ios 防止按钮快速点击造成多次响应的避免方法。
- iOS 防止按钮多次点击造成多次响应的方法
- ios 避免UIbutton快速点击造成多次响应的避免方法
- ios wkwebview的代理啊方法执行多次问题