iOS8で現在地取得の備忘録CoreLocation設定

iOS8で現在地取得する時に変更があり、少し手間取ったので備忘録です。

 

  • info.plistに追加
  • LocationManagerの呼び出し

iOS8で現在地情報を取得するには

info.plistに追加

NSLocationWhenInUseUsageDescription(使っているときは位置情報教えてよ)もしくはNSLocationAlwaysUsageDescription(いつでも位置情報教えてよ)で位置情報取得前にユーザーに使用許可をもらう必要があります。

そこで許可をもらうアラートを出す必要があるのですが、それをinfo.plistに書いておきましょう。と言うより強制です。

スクリーンショット 2015-05-21 16.53.28

書かないで呼び出してたら怒られます。

info.plistの追加ですが。一覧には出てこないので、一文字も間違えずに書いてください。

次にCoreLocation側の設定です。

CoreLocationの設定

まずCoreLocationインスタンスを生成します。もちろんCoreLocationもimportします。

#import <CoreLocation/CoreLocation.h>

@interface ViewController : UIViewController<CLLocationManagerDelegate>
@property(nonatomic)CLLocationManager *Manager;


@end

 

次にDidViewApperで位置情報許可を要請してください。ViewDidLoadではなぜか出来ません。

-(void)viewWillAppear:(BOOL)animated{
    //corelocationAllowed
    _Manager = [[CLLocationManager alloc]init];
    if ([_Manager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        
        [_Manager requestWhenInUseAuthorization];
    }
}

コードは使用中は位置情報欲しいよのrequestWhenInUseAuthorizasionです。

呼び出して、許可をしたらもうOKです。

2015-05-21 18.06.13

あとはMapViewなどで表示設定すればOKです。

About the author: naoyahanai