У меня есть два CLLocationManage в приложении. Первый из них предназначен для наблюдения за регионами-маяками, а другой — для наблюдения за обычным CLRegion.
Первый в A.m.
// Do any additional setup after loading the view.
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
Второй в Б.м.
gpsLocationManager = [[CLLocationManager alloc] init];
gpsLocationManager.delegate = self;
Я почти уверен в последнем, я не вызывал startMonitoringForRegion ни в одном регионе-маяке. Тем не менее, кажется, что gpsLocationmanager в B продолжает получать обратный вызов enterRegion из того, что в A. Таким образом, это заканчивается моей проверкой типа параметра переданного региона, чтобы gpsLocationManager не отвечал на какой-либо обратный вызов из входа в область маяка.
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"%d regions under monitor:", self.gpsLocationManager.monitoredRegions.count);
NSLog(@"%d regions in regionArray:", self.regionArray.count);
NSLog(@"Region type %@:", [region class]);
if(![region isKindOfClass:[CLBeaconRegion class]]){
Есть идеи?
С уважением Хаммер