Я работаю над проектом мониторинга маяка, и в настоящее время я исследую метод stopMonitoringForRegion. То, что я делаю, - дублирую исходный регион и начинаю новый мониторинг для него. Через 30 - 60 секунд я останавливаю скопированную область:
[self.locationManager stopMonitoringForRegion:self.duplicatedRegion];
Таким образом, исходный и дублированный регионы минорных и основных идентификаторов совпадают. Когда я прекращаю мониторинг дублированного региона, я также останавливаю исходный регион? Потому что младшие и главные идентификаторы одинаковы. Единственная разница между исходной и дублированной областью заключается в идентификаторах. Оригинал имеет 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. Также я никогда не останавливаюсь в оригинальном регионе. Я только начинаю и останавливаю дубликат.