2012-11-10 72 views
1

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

我试着这样做:

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

当我做这一切的按钮导致崩溃

继承人的崩溃日志:

- [视图控制器位置]:无法识别的选择发送到实例 0x1fd36b60 2012-11-10 16:38:38.567 MeasureIt [3043:907] *终止 应用程序由于未捕获异常'NSInvalidAr gumentException”,原因: ' - [视图控制器位置]:无法识别的选择发送到实例 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

您需要提问。你刚才发表了一些声明。你想问什么? – rmaddy

+0

就像你解释的那样执行它。如果您遇到实际问题,请告诉我们您尝试了什么以及您遇到什么问题。 – sosborn

+0

崩溃日志说什么? (顺便提一下,你应该在提问时一直包括这个)。 – sosborn

回答

0

功能 “定位” 未实现或者它被称为错了对象。看看你的代码在哪里调用[ViewController location]并确保它被实现。