0

你好我在appdelegate.m的方法中分配nsnotifiaction,这个方法每30秒调用一次eprox,我希望它在viewcontroller和execute方法中的通知,这是我的appdelegate.m代码

- (void)layoutAnimated:(BOOL)animated{
    BOOL yy=    self.bannerView.bannerLoaded;
    if (yy==1){
        self.iAdString=[NSMutableString stringWithString:@"1"];
         [[NSNotificationCenter defaultCenter] postNotificationName:@"BannerViewActionWillBegin" object:self];
     }
   else{
      self.iAdString=[NSMutableString stringWithString:@"0"];
      [[NSNotificationCenter defaultCenter] postNotificationName:@"BannerViewActionDidFinish" object:self];
     }
}

在 viewcontroller.m

//我在viewdidload方法中定义

- (void)viewDidLoad{
    [super viewDidLoad];
  [[NSNotificationCenter defaultCenter] addObserver:self     selector:@selector(willBeginBannerViewActionNotification:) name:@"BannerViewActionWillBegin "object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishBannerViewActionNotification:) name:@"BannerViewActionDidFinish" object:nil];
}

它的方法是..

- (void)willBeginBannerViewActionNotification:(NSNotification *)notification{
    [self.view addSubview:self.app.bannerView];
     NSLog(@"come");
}

- (void)didFinishBannerViewActionNotification:(NSNotification *)notification {
     NSLog(@"come");
    [self.app.bannerView removeFromSuperview];
}

- (void)dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

在 appdelegate 文件中读取方法时,我没有得到过多方法的响应。

请帮我。

4

2 回答 2

4

你有一个拼写错误。

[[NSNotificationCenter defaultCenter] addObserver:self     selector:@selector(willBeginBannerViewActionNotification:) name:@"BannerViewActionWillBegin "object:nil];

//Your error here-------------------------------------------------------------------------------------------------------------------------------------^

你在那里放了一个空间。

旁注:对于所有通知名称,您应该/可以创建一个单独的文件并将所有通知名称作为常量字符串。

const NSString *kBannerViewActionWillBegin=@"BannerViewActionWillBegin";

这将更容易更改值,并且不会发生此类错字。

于 2013-04-08T06:31:16.210 回答
0

从您的代码中,除了通知名称之外,我得到的所有其他内容都很好,您是否检查过通知是否被触发。尝试在通知触发线上保留断点。

于 2013-04-08T06:37:49.743 回答