Я занимаюсь разработкой приложения, которое имеет много просмотров. Иногда в мое приложение пользователь попадает в представление, где он может запросить свою позицию, нажимая на кнопку. Я пытаюсь следовать руководящим указаниям Apple, чтобы запрашивать позицию пользователя, только если пользователь позволяет это сделать. Что я должен сделать, использовать следующий первый код в делегате приложения и объявить атрибут диспетчера местоположения в любом представлении, которое пользователь вызывает, передавая атрибут диспетчера местоположения в новое представление и из старого представления и запрашивая второй следующий код в любое время что пользователь нажимает кнопку, чтобы найти себя ?; или просто используйте второй код, объявляя атрибут диспетчера местоположения только в представлениях, которые позволяют получить местоположение пользователя с помощью кнопки, чтобы проверить, включены ли службы определения местоположения?
Первый фрагмент.
- (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;
}
Второй фрагмент.
- (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];
}
}
Спасибо за чтение.