Iphone 当用户位于特定区域时,如何仅更新一次?

Iphone 当用户位于特定区域时,如何仅更新一次?,iphone,ios,core-location,Iphone,Ios,Core Location,大家好,我在项目中使用CoreLocation来了解我是否已到达某个区域。我没有使用startMonitoringForRegion,而是在后台使用startMonitoringForSignificantLocationChange 所以,当我有一个位置更新,我检查我的存储位置,如果距离小于或等于我的设置半径,它将发送一个本地通知。除了假设用户在范围内并接受推送之外,一切正常。再次,当他在后台走一点,它肯定会显示通知。如何满足这一点,也就是说,因为我收到了一个通知,它不会再次弹出,而且当我离开

大家好,我在项目中使用
CoreLocation
来了解我是否已到达某个区域。我没有使用
startMonitoringForRegion
,而是在后台使用
startMonitoringForSignificantLocationChange


所以,当我有一个位置更新,我检查我的存储位置,如果距离小于或等于我的设置半径,它将发送一个本地通知。除了假设用户在范围内并接受推送之外,一切正常。再次,当他在后台走一点,它肯定会显示通知。如何满足这一点,也就是说,因为我收到了一个通知,它不会再次弹出,而且当我离开该地区并重新进入时,也会弹出。我正在考虑使用布尔值进行检查。

您可以在中清除通知

- (void)applicationDidBecomeActive:(UIApplication *)application
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

并重新创建本地通知,不包括您现在所在的地区

我的建议是不要使用

Boolean notified = FALSE;
值,因为当应用程序终止并重新启动时,它将失去其值。 你为什么不使用

[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"notified"];
因为这不会在应用程序重新启动或重新启动时一次又一次地发出通知。

tks供您回复:)需要[[UIApplication sharedApplication]cancelAllLocalNotifications];剩下的我将用一个布尔值来处理:)