iOS8で現在地取得の備忘録CoreLocation設定
iOS8で現在地取得する時に変更があり、少し手間取ったので備忘録です。
- info.plistに追加
- LocationManagerの呼び出し
iOS8で現在地情報を取得するには
info.plistに追加
NSLocationWhenInUseUsageDescription(使っているときは位置情報教えてよ)もしくはNSLocationAlwaysUsageDescription(いつでも位置情報教えてよ)で位置情報取得前にユーザーに使用許可をもらう必要があります。
そこで許可をもらうアラートを出す必要があるのですが、それをinfo.plistに書いておきましょう。と言うより強制です。
書かないで呼び出してたら怒られます。
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です。
あとはMapViewなどで表示設定すればOKです。