1

所以,这是我的人生故事,我似乎无法弄清楚出了什么问题!!!

我有一个已经在商店里的应用程序,它有一个奇怪的问题,它给出了混合的结果。

我的主视图中有两个开关,它们都控制具有重复间隔的本地通知。

现在我已经正确设置了开关并准备好了。(我猜)。但是,当安排重复间隔时,当用户决定不接收通知时,它们必须再次取消。所以,我的开关是这样编码的:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
BOOL switchOn = [userDefaults boolForKey:@"switchO"];

if (switchOn) {

    [self Firstnotif];
    [self Secondnotif];
    [self Thirdnotif];
    [self Lastnotif];

}

else {   [[UIApplication sharedApplication] cancelAllLocalNotifications];    }


 BOOL switchOn2 = [userDefaults boolForKey:@"switchO2"];

if (switchOn2) {


[self Firstnotif];


}

else {   [[UIApplication sharedApplication] cancelAllLocalNotifications];    }


}

请注意,我Firstnotif在两个开关中都使用了该方法两次。

我的问题是:

  • 我曾经只有一个开关,当他们打开第一个开关以接收这四个通知时,不适用于所有用户。所以我告诉他们把它关掉,按主页按钮,再次打开应用程序打开它,然后再次打开主页按钮。有用!!!!为什么?

  • 现在,由于我添加了另一个开关,因此出现了新的混合结果。第二个开关是仅以重复间隔触发第一个通知。有人说有效,有人说无效。其他人说,当我转动另一个时,它会转,也不会。他们在这里面对什么?

我的问题,

我是否以正确的方式取消重复间隔?

我的应用程序可能有什么问题?如果需要,我会为您提供更多代码。

感谢您的投入,因为我在这些问题上花了数周时间却没有运气。

4

1 回答 1

1

我解决了!

我替换了方法下的取消请求applicationDidBecomeActive并删除了我的else

你猜怎么了?有效!!!:)

于 2013-01-31T13:59:06.547 回答