I have seen many currentLocation questions here but I am trying to set two points using two seperate IBActions because from my understanding the Core Location updateLocation method can't measure distance between two points that the user chooses. For example, if the person is standing at one side of town they can click a button and it will set that as locA and then they go to the other side of town, click a different button and it will set that as locB and when they click a third button it will calculate the distance between the two. Any ideas on how to implement this?
I tried to do this :
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)setPointOne{
locA = [[CLLocation alloc] initWithLatitude:locationManager.location.coordinate.latitude longitude:locationManager.location.coordinate.longitude];
}
- (IBAction)setPointTwo{
locB = [[CLLocation alloc] initWithLatitude:locationManager.location.coordinate.latitude longitude:locationManager.location.coordinate.longitude];
}
- (IBAction)calculateDistance{
CLLocationDistance distance = [locA distanceFromLocation:locB];
totalDistance.text = [NSString stringWithFormat:@"Distance: %f Meters", distance];
[locA release];
[locB release];
}
When I did this all buttons lead to a crash
Heres the crash log:
-[ViewController location]: unrecognized selector sent to instance 0x1fd36b60 2012-11-10 16:38:38.567 MeasureIt[3043:907] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController location]: unrecognized selector sent to instance 0x1fd36b60' * First throw call stack: (0x3a4f42a3 0x343e397f 0x3a4f7e07 0x3a4f6531 0x3a44df68 0x337110a5 0x33711057 0x33711035 0x337108eb 0x33710de1 0x336395f1 0x33626801 0x3362611b 0x388095a3 0x388091d3 0x3a4c9173 0x3a4c9117 0x3a4c7f99 0x3a43aebd 0x3a43ad49 0x388082eb 0x3367a2f9 0xd5a27 0x37ca6b20) libc++abi.dylib: terminate called throwing an exception (lldb)
The function "location" isn't implemented or it's being called on the wrong object. Look at where your code is calling [ViewController location] and make sure it's implemented.