CLLocation当前位置获取位置

时间:2012-11-10 22:49:04

标签: ios core-location cllocation cllocationdistance

我在这里看到了许多currentLocation问题,但我试图使用两个单独的IBActions设置两个点,因为根据我的理解,Core Location updateLocation方法无法测量用户选择的两个点之间的距离。例如,如果这个人站在城镇的一边,他们可以点击一个按钮,然后将其设置为locA,然后他们转到城镇的另一边,点击一个不同的按钮,它将设置为locB,当他们点击第三个按钮,它将计算两者之间的距离。有关如何实现这一点的任何想法?

我试着这样做:

    - (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];
   }

当我这样做时,所有按钮都会导致崩溃

继承崩溃日志:

  

- [ViewController location]:发送到实例的无法识别的选择器   0x1fd36b60 2012-11-10 16:38:38.567 MeasureIt [3043:907] *终止   应用程序由于未捕获的异常'NSInvalidArgumentException',原因:   ' - [ViewController location]:发送到实例的无法识别的选择器   0x1fd36b60'   * 第一次抛出调用堆栈:(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:被叫终止   抛出异常(lldb)

1 个答案:

答案 0 :(得分:0)

未实现函数“location”或在错误的对象上调用它。查看代码调用[ViewController位置]的位置并确保它已实现。