ट्रिगर नहीं मैं उन स्थलों का दौरा किया है, तो ट्रैक करने के लिए निगरानी क्षेत्रों का उपयोग करने की कोशिश कर रहा हूँ। स्थान प्रबंधक एक MapKitiphone CLLocationmanager क्षेत्र निगरानी कॉलबैक
दृश्य नियंत्रक के viewDidLoad में साथ-साथ एक ViewController में आरंभ नहीं हो जाता:
if (self.locationManager == nil)
{
// NSLog(@"creating location manager");
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.distanceFilter = kCLDistanceFilterNone;
}
NSSet* set=[locationManager monitoredRegions];
if ([CLLocationManager regionMonitoringAvailable] && [CLLocationManager regionMonitoringEnabled]) {
NSLog(@"region monitoring okay");
NSLog(@"monitored regions: %@",set);
}
मैं सही ढंग से और सभी क्षेत्रों "ठीक निगरानी क्षेत्र" NSLogs मिलता है।
क्षेत्रों में से जोड़ें, ताकि
double metres=20.0;
CLLocationDistance dist=metres;
CLLocationAccuracy acc=1.0;
CLRegion *reg=[[CLRegion alloc] initCircularRegionWithCenter:coordinate radius:dist identifier:landmarkObj.landmarkName];
[locationManager startMonitoringForRegion:reg desiredAccuracy:acc];
की तरह किया जाता है लेकिन कॉलबैक सभी
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Entered"
message:region.identifier
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
}
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Exited"
message:region.identifier
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
}
- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
{
NSLog(@"started monitring for region: %@",region);
}
- (void) locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error
{
NSLog(@"%@",error);
}
ट्रिगर नहीं होते हैं तथापि स्थान अपडेट कर, ठीक काम करता है। बजाय क्षेत्रों के लिए निगरानी के लिए किया didUpdatToLocation:
[locationManager startUpdatingLocation];
उम्मीद
अद्यतन के रूप में कॉलबैक didUpdateToLocation से चलाता है। अभी भी जानना चाहता है कि हालांकि इस कार्य नहीं करेगा रुचि रखते हैं, लगता है कि आप अपने ViewController को CLLocationManagerDelegate
स्थापित किया था की तरह कुछ क्षेत्र निगरानी
क्या आप इस मुद्दे का समाधान ढूंढ चुके हैं? मुझे एक ही समस्या है और किया गया थास्टार्ट मॉनिटरिंगफोररियन फायरिंग नहीं है। – Das
यह पता चला है कि क्षेत्र की निगरानी सिर्फ मुझे आवश्यक सटीकता नहीं देती है। मैं प्रत्येक didUpdateToLocation कॉलबैक के लिए मैन्युअल जांच कर समाप्त हो गया। यह मेरे लिए व्यवहार्य था क्योंकि मैं केवल 10 क्षेत्रों के लिए ट्रैकिंग कर रहा था – tzl