Iphone startMonitoringForRegion不总是将区域添加到监视区域

Iphone startMonitoringForRegion不总是将区域添加到监视区域,iphone,core-location,Iphone,Core Location,我无法使startMonitoringForRegion一致地添加区域 int i =0; for(Deals *d in deals){ NSLog(@"deal addRegionsInDealsArray %@",d.deal_id); if (d.latitude != NULL && d.longitude!=NULL && ![d.lat

我无法使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]);
在loo之后,它总是产生一个错误

错误,时间,309834541.397,函数“布尔CLClientCopyMonitoredRegions(_CLClient*,const__CFDictionary**)”无法成功发送

关于如何成功使用startMonitoringForRegion有什么建议吗

编辑:在startMonitoringForRegion:和产生错误的[[locationManager monitoredRegions]计数]周围添加了@try catch。它们仍然会产生错误,但不会被捕获。还将其全部移动到NSTimer循环,该循环在can中每秒钟触发一次,因为重复调用导致了问题。仍然随机失败。 有时我的第一个电话打不通


干杯

您是否只在该设备上使用iPhone4功能,请咨询

 [CLLocationManager regionMonitoringAvailable] 

在《位置感知编程指南》中

在指定要监视的区域集时,应始终谨慎。区域是共享的系统资源,系统范围内可用的区域总数有限。因此,核心位置限制了单个应用程序可以同时监视的区域数


这似乎是数据库错误或类似的错误。在区域注册后的一段时间内,表被锁定(或者,再次强调,不管等价物在幕后是什么,尽管我猜正是这样)。所以你不能数数。请在较长时间后尝试计数。

我正在使用iPhone4,并且区域监控可用并已启用。对不起,您的意思是区域监控仅适用于iPhone4吗?