ios – NSNotificationCenter多次呼叫

ios – NSNotificationCenter多次呼叫,第1张

概述我在我的应用程序中实现了NSNotificationCenter.我在完成图像解码时发送通知.第一次图像解码将完成8次.所以通知假设发送8次.但它调用64次(8 * 8). 这是我的代码我是如何实现的 – >                 //初始化 - (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; 我在我的应用程序中实现了NSNotificationCenter.我在完成图像解码时发送通知.第一次图像解码将完成8次.所以通知假设发送8次.但它调用64次(8 * 8).

这是我的代码我是如何实现的 – >
//初始化

- (ID)initWithFrame:(CGRect)frame{  self = [super initWithFrame:frame]; if (self) {    [[NSNotificationCenter defaultCenter] addobserver:self                                                      selector:@selector(getHRImage:)                                                             name:@"DecodeComplete" object:nil];}

//调用方法

-(voID)getHRImage:(NSNotification *) notification{if ([[notification name] isEqualToString:@"DecodeComplete"])    NSLog (@"Successfully received the DecodeComplete notification! ");}`

//解除分配

- (voID) dealloc{      [[NSNotificationCenter defaultCenter] removeObserver:self name:@"DecodeComplete" object:self];    //[super dealloc];}

//发布通知

[[NSNotificationCenter defaultCenter] postNotificationname:@"DecodeComplete" object:self];

有人可以建议我做错了.

提前致谢.

//调用方法是这样的(调用8次)

-(voID)decode{   NSLog(@"---------- DeCoding is Complete ---------");     [[NSNotificationCenter defaultCenter]  postNotificationname:@"MdjDecodeComplete" object:self];}
解决方法 解:
我重新检查了我的代码,initWithFrame:(CGRect)框架调用了8次,并添加了8次NSNotification观察器.

所以我改变了这样的代码,—>>初始化.

static bool note=YES;- (ID)initWithFrame:(CGRect)frame{  self = [super initWithFrame:frame];  if (self) {  if(note) [[NSNotificationCenter defaultCenter] addobserver:self                                                  selector:@selector(getHRImage:)                                                         name:@"DecodeComplete" object:nil]; note=NO;}

—>>取消分配

- (voID) dealloc  {    note=true;  [[NSNotificationCenter defaultCenter] removeObserver:self name:@"DecodeComplete" object:nil];//[super dealloc];}

现在addobserver方法只调用一次,所以我的问题解决了.谢谢大家的宝贵指导.

总结

以上是内存溢出为你收集整理的ios – NSNotificationCenter多次呼叫全部内容,希望文章能够帮你解决ios – NSNotificationCenter多次呼叫所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存