アプリ内でコアロケーションフレームワークを使用しています.didUpdateToLocationメソッドは、アプリが最初に起動したときに2回呼び出されます。ロケーションマネージャーインスタンスを割り当てて開始し、startUpdatingLocationを呼び出しました。そして、didUpdateToLocationで、現在の緯度と経度をサーバーに送信している別の関数を呼び出しているので、この関数の複数の呼び出しを回避するにはどうすればよいですか?
- (void)viewDidLoad
{
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
[self.mapView setShowsUserLocation:YES];
if( [CLLocationManager locationServicesEnabled])
{
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
locationManager.distanceFilter = 1000.0f;
else
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"GPS Disabled" message:@"Enable GPS settings to allow the application to search for your current location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
//Here is didUpdateToLocation method
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
self.lat = newLocation.coordinate.latitude;
self.longi = newLocation.coordinate.longitude;
NSLog(@"Updated Location : lat--%f long--%f",self.lat,self.longi);
[self updateUserLocation];
}
//in this function i am sending the latitude and longitude to server.
-(void)updateUserLocation
{
NSString *urlString = [[NSString stringWithFormat:@"http://appifylabs.com/tracemybuddies/index.php/iphone/updateUserLocation/?userId=1&latitude=%@&longitude=%@",self.lat,self.longi] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[conn url_Connection:urlString withActivityView:self.activityView withParentView:self.view];
}