位置情報を取得するiPhoneAppを設定->位置情報の欄に表示させる方法
現在、位置情報を取得するiPhoneAppを作っています。
その為のコードを追加し、実行したのですが、設定の位置情報の欄にそのApp名が表示されません。
欄にApp名を表示させる方法と仕組みを教えてください。
なお、Info.plist
にNSLocationAlwaysUsageDescription
とNSLocationWhenInUsageDescription
は追加しています。
以下に、位置情報取得の為に追加したコードを載せます。
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<UIAlertViewDelegate,CLLocationManagerDelegate>
{
//位置情報メンバを定義
CLLocationManager *locationManager;
}
@property(readonly, nonatomic) CLLocationManager *locationManager;
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
switch (status) {
case kCLAuthorizationStatusAuthorizedAlways: // アクセスが許可
case kCLAuthorizationStatusAuthorizedWhenInUse: // アクセスを許可するか選択されていない
{
locationManager=[[CLLocationManager alloc]init];//初期化
locationManager.delegate=self;
locationManager.desiredAccuracy=kCLLocationAccuracyBestForNavigation;//精度
locationManager.distanceFilter=1.0;//更新頻度
[locationManager startUpdatingLocation];//サービス開始
}
break;
case kCLAuthorizationStatusRestricted: // 機能制限で利用が制限されている
{
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"エラー"
message:@" 機能制限で利用が制限されています"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
break;
case kCLAuthorizationStatusDenied: // 許可していない
{
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"エラー"
message:@"アクセスを許可されていません"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
break;
default:
break;
}
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"didUpdateToLocation latitude=%f, longitude=%f, speed=%f, time=%@",
[newLocation coordinate].latitude,
[newLocation coordinate].longitude,
newLocation.speed,
newLocation.timestamp);
}