2016-09-28 11 views
0

気象データを表示するためにユーザーの場所にアクセスしようとしています。私はこのコードを使用しています:許可後にロケーションデータを取得できません。

if(self.locationManager == nil) { 
    self.locationManager = [[CLLocationManager alloc] init]; 
    self.locationManager.delegate = self; 
} 

// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7. 
if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { 
    NSLog (@"ENTERING requestWhenInUseAuthorization",nil); 
    [self.locationManager requestAlwaysAuthorization]; 
} 
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[self.locationManager startUpdatingLocation]; 

CLLocation *location = [self.locationManager location]; 
[self.locationManager stopUpdatingLocation]; 
NSString *latitude = [[NSNumber numberWithDouble:location.coordinate.latitude] stringValue]; 
NSString *longitude = [[NSNumber numberWithDouble:location.coordinate.longitude] stringValue]; 

私は現在の場所を使用するための許可を求めるポップアップを取得します。私は受け入れるが、私は場所を取得していない、その値はnilです。私が設定に行くと、データにアクセスする権限があると言いますが、アプリケーションを閉じてもう一度開くとデータを取得できません。 現時点で場所を取得する方法はありますか?私は間違って何かしていますか?

+0

'CLLocationManagerDelegate'を定義し、(locationManager:didUpdateLocations:'メソッドで)位置が更新されるまで待つ必要があります。このメソッドは、より正確に1回ずつ複数回呼び出されます。 **あなたの 'CLLocation'インスタンスを取得したいと思っています。 –

答えて

1

あなたはすぐにその場所にアクセスしようとしています。 デリゲートメソッドを実装する必要があります。場所があるときに呼び出されます。

1つの場所だけが必要な場合は、stopUpdatingLocationをデリゲートメソッド内で呼び出すことができます。

+0

はうまくいった! カレンダーにアクセスする権限を求めた後、カレンダーにも類似したものがあるかどうか尋ねることができます。カレンダーイベントを表示したいが、ビューを終了してもう一度それに戻るまでは表示されません。 – Lara

+0

これはまったく異なる質問です。私は、関連するすべてのコードとその問題に関する詳細を含む新しい質問を投稿することをお勧めします。 – rmaddy

+0

私はすでに謝罪しています。 http://stackoverflow.com/questions/39772054/how-to-know-when-calendar-finishes-loading – Lara

関連する問題