1

ここで多くのcurrentLocationの質問を見てきましたが、コアロケーションのupdateLocationメソッドでは、ユーザーが選択した2つのポイント間の距離を測定できないため、2つの別々のIBActionを使用して2つのポイントを設定しようとしています。たとえば、人が町の片側に立っている場合、ボタンをクリックするとそれがlocAとして設定され、次に町の反対側に移動して別のボタンをクリックすると、それがlocBとして設定されます。 3番目のボタンをクリックすると、2つの間の距離が計算されます。これを実装する方法について何かアイデアはありますか?

私はこれをやろうとしました:

    - (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の場所]:認識されないセレクターがインスタンス0x1fd36b60に送信されました2012-11-10 16:38:38.567 MeasureIt [3043:907] *キャッチされない例外'NSInvalidArgumentException'、理由:'のためにアプリを終了します-[ViewControllerの場所]:認識されないセレクターインスタンス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:例外をスロー呼ばTERMINATE(第スローコールスタックlldb)

4

1 に答える 1

0

関数「location」が実装されていないか、間違ったオブジェクトで呼び出されています。コードが[ViewControllerlocation]を呼び出している場所を確認し、実装されていることを確認します。

于 2012-11-10T23:42:41.053 に答える