Я знаю, что есть много вопросов, связанных с этим, но я не могу связать свою проблему. В моем приложении я получаю ближайший ресторан. Сначала, если пользователь нажимает кнопку «Рядом», я получаю информацию о широте, долготе, метке, используя этот код ниже.
-(void)setUpUserLocation
{
BOOL locationAllowed = [CLLocationManager locationServicesEnabled];
if (locationAllowed==NO)
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"No authorization"
message:@"Please, enable access to your location"
delegate:self cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Open Settings", nil];
[alertView show];
}
else
{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
if ([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[locationManager requestWhenInUseAuthorization];
}
}
[locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *location=[locations lastObject];
CLGeocoder *geocoder=[[CLGeocoder alloc]init];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark = placemarks[0];
NSDictionary *addressDictionary = [placemark addressDictionary];
}];
[self stopSignificantChangesUpdates];
}
- (void)stopSignificantChangesUpdates
{
[locationManager stopUpdatingLocation];
locationManager = nil;
}
Мой вопрос: если местоположение пользователя изменится, как мне дать пользователю предупреждение, например Your location changed, you need to update it then only you can get a Nearby Restaurant
Location popup should come once the user location changes
, иначе я не хочу каждый раз вызывать didUpdateLocation
. Я позвонил startMonitoringSignificantLocationChanges
, тогда он не вызвал didUpdateLocation в первый раз. Любая помощь по этому поводу.
allow
иdon't allow
. Если они нажали «Разрешить», то обновите новое местоположение. а также ты упомянул, чтоSignificantLocationChanges
ты можешь помочь мне с этим, я этого не знал. locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; locationManager.distanceFilter = 100; - person Shangari C   schedule 04.06.2016