多くのビューを持つアプリを開発しています。私のアプリでは、ユーザーはボタンをクリックして自分のポジションを尋ねることができるビューに到着することがあります。私はAppleのガイドラインに従って、ユーザーがそれを行うことができる場合にのみユーザーの位置を求めるようにしています。私は何をすべきか、次の最初のコードをアプリケーションデリゲートに使用し、ユーザーが呼び出すビューにロケーションマネージャー属性を宣言し、ロケーションマネージャー属性を新しいビューと古いビューから渡して、いつでも2番目の次のコードを要求しますユーザーがボタンをクリックして自分の位置を特定していることを示します。または、位置情報サービスが有効になっているかどうかを確認するために、ボタンを使用してユーザーの場所を取得できるビューにのみ位置マネージャー属性を宣言して、2番目のコードを使用しますか?iOSロケーションマネージャーを使って作業する
最初のスニペット。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
// Create a location manager instance to determine if location services are enabled. This manager instance will be
// immediately released afterwards.
CLLocationManager *manager = [[CLLocationManager alloc] init];
if (manager.locationServicesEnabled == NO) {
UIAlertView *servicesDisabledAlert = [[UIAlertView alloc] initWithTitle:@"Location Services Disabled" message:@"You currently have all location services for this device disabled. If you proceed, you will be asked to confirm whether location services should be reenabled." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[servicesDisabledAlert show];
[servicesDisabledAlert release];
}
[manager release];
return YES;
}
第2スニペット。
- (IBAction)locateUser:(id)sender {
if([CLLocationManager locationServicesEnabled]) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self;
} else {
[[[[UIAlertView alloc] initWithTitle:@"Location services."
message:@"Location services are disabled."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
}
}
お読みいただきありがとうございます。
誰も私を助けることはできませんか? –