Не могу заставить startMonitoringForRegion последовательно добавлять регионы.
int i =0;
for(Deals *d in deals){
NSLog(@"deal addRegionsInDealsArray %@",d.deal_id);
if (d.latitude != NULL && d.longitude!=NULL &&
![d.latitude isEqualToNumber:[NSNumber numberWithInt:0 ]] &&
![d.longitude isEqualToNumber:[NSNumber numberWithInt:0 ]]) {
CLLocationCoordinate2D dl = CLLocationCoordinate2DMake(
[d.latitude doubleValue],
[d.longitude doubleValue]);
//NSLog(@"Lat addRegionsInDealsArray %@",d.latitude);
CLRegion * clr = [[CLRegion alloc] initCircularRegionWithCenter:dl radius:radius identifier:d.deal_id];
[locationManager startMonitoringForRegion:clr desiredAccuracy:kCLLocationAccuracyHundredMeters];
NSLog(@"Region to add:%@",clr);
[clr release];
i++;
if (i==10) {
break;
}
}
}
Я поставил разрыв после 10, потому что он никогда не прибавлял больше 10 и падал где-то около 560 регионов. даже если его ограничить до 10 регистров, иногда он добавляет не 10, а только 8 (или 7, 9 или 0). Это не первые 8, которые добавляются.
Также, если у меня есть
NSLog(@"region count %i",[[locationManager monitoredRegions] count]);
сразу после туалета всегда выдает ошибку
ОШИБКА, Время, 309834541.397, Функция, "Boolean CLClientCopyMonitoredRegions (__ CLClient *, const __CFDictionary **)", Не удалось отправить успешно
Любые предложения о том, как успешно использовать startMonitoringForRegion?
edit: добавлен @try catch вокруг startMonitoringForRegion: и [[locationManager monitoredRegions] count], который выдает ошибку. Они по-прежнему выдает ошибку, но не пойман. Также перенес все это в цикл NSTimer, который срабатывает каждую секунду, если повторные вызовы вызывают проблемы. по-прежнему не удается случайно.
иногда мой первый звонок не удался.
Приветствия