模拟器不显示UILocalNotification

时间:2015-10-20 22:13:37

标签: ios timezone ios-simulator uilocalnotification uiapplication

我正在尝试合并在一定时间间隔后触发的本地通知,但是,在使用模拟器进行测试时,我似乎无法在任何时候显示通知。

我只想在创建后10秒显示本地通知,但是,在模拟器中运行应用程序时,无论应用程序是在前台还是后台,都无法显示。

我错过了什么吗?这可能与时区有关吗?

//通知设置

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
localNotification.alertBody = @"Testing";
localNotification.alertAction = @"Show me the item";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

//这是我的app delegate中的didReceiveLocalNotification

UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Reminder" message:notification.alertBody delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}

2 个答案:

答案 0 :(得分:7)

1)您是否已注册使用通知?您可以通过错过这个简单的步骤在此处看到我的帖子。它在Swift中,但你得到了要点:UILocalNotification not doing anything

2)当你进入App 时,我认为Notifications无效,因为它违背了Notifications的目的。当您不在应用程序(即后台模式或已终止)时,通知应该会提醒您。因此,当您进行测试时,请确保您不在应用程序中

3)一般来说,根据我的经验,测试通知最好在真实设备上完成而不是模拟器。

答案 1 :(得分:0)

iOS模拟器无法自动获取真实位置。

您可以设置虚假位置以保持您的应用继续运行。尝试使用它来检测它是否是模拟器,然后设置它。

#if (TARGET_IPHONE_SIMULATOR)