Ios 从Main.m调用UILocalNotification

Ios 从Main.m调用UILocalNotification,ios,objective-c,main,uilocalnotification,Ios,Objective C,Main,Uilocalnotification,我不确定这是否可行,但我正在尝试从Main.m上运行的函数触发UILocalNotification。到目前为止,我尝试了几种不同的方法,但我对谁必须提交通知感到有点困惑,因为简单的方法似乎不起作用: 我从CTTelephonyCenter上的观察者(在Main.m中定义)调用的静态函数调用此代码 UILocalNotification *localNotif = [[UILocalNotification alloc] init]; if (localNotif) {

我不确定这是否可行,但我正在尝试从Main.m上运行的函数触发UILocalNotification。到目前为止,我尝试了几种不同的方法,但我对谁必须提交通知感到有点困惑,因为简单的方法似乎不起作用: 我从CTTelephonyCenter上的观察者(在Main.m中定义)调用的静态函数调用此代码

      UILocalNotification *localNotif = [[UILocalNotification alloc] init];
      if (localNotif) {
          NSLog(@"Ciao");
          localNotif.alertBody = [NSString stringWithFormat:
                                        @"La telefonata é finitá!!!!!"];
          localNotif.alertAction = NSLocalizedString(@"Read Message", nil);
          localNotif.soundName = @"alarmsound.caf";
          localNotif.applicationIconBadgeNumber = 1;
          [[UIApplication sharedApplication] presentLocalNotificationNow:localNotif];

       }
现在,日志显示了,但localNotif没有显示。 这就是我所担心的,我就是不能通过Main调用的静态函数来实现它,因为窗口没有定义

我知道我不应该和main.m混在一起。试着实现:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification;

在应用程序代理中


如果你的应用程序是打开的,你可以在这里记录东西,但通知中心不会显示任何东西。只有当你的应用程序在后台时,通知才会显示在通知中心。

发生这种情况时,应用程序表面上正在运行,对吗?您是否在AppDelegate中处理通知?只有当您的应用程序处于后台时,才会向用户显示通知。是,该应用程序正在Voip模式下后台运行。而且通知不会以任何方式处理…通知应该立即出现…但可能我遗漏了什么。我的应用程序处于voip模式的后台。我会试试看。它不起作用,但可能是因为我在Main中有一个CFRunLoopRun(),它阻止了一切。好吧,我尝试了不使用循环,但它确实起作用了!。问题是我正在处理Main.m,因为我需要这个循环,现在我将把这个答案标记为正确,如果我找到其他解决方案,我将把它们发布在这里。