stopMonitoringForRegion 是只停止复制区域还是也停止原始区域?
Does stopMonitoringForRegion stops only the duplicated region or also the original region as well?
我正在从事信标监控项目,目前正在研究 stopMonitoringForRegion 方法。我正在做的是,复制原始区域并为其启动新的监视。 30 - 60 秒后,我停止复制的区域:
[self.locationManager stopMonitoringForRegion:self.duplicatedRegion];
因此原始区域和复制区域的次要 ID 和主要 ID 相同。当我停止监视重复区域时,我是否也停止了原始区域?因为次要 ID 和主要 ID 相同。原始区域和复制区域之间的唯一区别是标识符。原始的有供应商 GUID,而复制的有 "testRegion" 字符串。
self.duplicatedRegion = [[CLBeaconRegion alloc] initWithProximityUUID:self.originalRegion.proximityUUID
major:[self.originalRegion.major intValue]
minor:[self.originalRegion.minor intValue]
identifier:@"testRegion"];
self.duplicatedRegion.notifyEntryStateOnDisplay = NO;
self.duplicatedRegion.notifyOnEntry = YES;
self.duplicatedRegion.notifyOnExit = YES;
[self.locationManager startMonitoringForRegion:self.duplicatedRegion];
我问这个是因为当我停止监视重复区域时,应用程序不再接收任何进入和退出区域事件。在我的代码中,我正在检查是否正在监视原始区域,是的,它位于 self.locationManager monitoredRegions 数组中。我也从不停止原始区域。我只是开始和停止重复的。
关键点是为 identifier
字段使用不同的字符串:
self.duplicatedRegion = [[CLBeaconRegion alloc] initWithProximityUUID:self.originalRegion.proximityUUID
major :[self.originalRegion.major intValue]
minor :[self.originalRegion.minor intValue]
identifier :@"testRegion"];
如果 originalRegion
的 identifier
为 testRegion
,并且重复的值具有相同的值,则会导致您描述的症状。这是因为 CoreLocation 使用 identifier
字段表示 Region
对象相同,允许您将一个对象替换为另一个对象。
要同时激活两个区域,只需提供不同的 identifier
值即可。
我正在从事信标监控项目,目前正在研究 stopMonitoringForRegion 方法。我正在做的是,复制原始区域并为其启动新的监视。 30 - 60 秒后,我停止复制的区域:
[self.locationManager stopMonitoringForRegion:self.duplicatedRegion];
因此原始区域和复制区域的次要 ID 和主要 ID 相同。当我停止监视重复区域时,我是否也停止了原始区域?因为次要 ID 和主要 ID 相同。原始区域和复制区域之间的唯一区别是标识符。原始的有供应商 GUID,而复制的有 "testRegion" 字符串。
self.duplicatedRegion = [[CLBeaconRegion alloc] initWithProximityUUID:self.originalRegion.proximityUUID
major:[self.originalRegion.major intValue]
minor:[self.originalRegion.minor intValue]
identifier:@"testRegion"];
self.duplicatedRegion.notifyEntryStateOnDisplay = NO;
self.duplicatedRegion.notifyOnEntry = YES;
self.duplicatedRegion.notifyOnExit = YES;
[self.locationManager startMonitoringForRegion:self.duplicatedRegion];
我问这个是因为当我停止监视重复区域时,应用程序不再接收任何进入和退出区域事件。在我的代码中,我正在检查是否正在监视原始区域,是的,它位于 self.locationManager monitoredRegions 数组中。我也从不停止原始区域。我只是开始和停止重复的。
关键点是为 identifier
字段使用不同的字符串:
self.duplicatedRegion = [[CLBeaconRegion alloc] initWithProximityUUID:self.originalRegion.proximityUUID
major :[self.originalRegion.major intValue]
minor :[self.originalRegion.minor intValue]
identifier :@"testRegion"];
如果 originalRegion
的 identifier
为 testRegion
,并且重复的值具有相同的值,则会导致您描述的症状。这是因为 CoreLocation 使用 identifier
字段表示 Region
对象相同,允许您将一个对象替换为另一个对象。
要同时激活两个区域,只需提供不同的 identifier
值即可。