这是我在这个网站上的第一个问题。
我有这个严重的问题......我会从头开始解释......
在我的应用程序中,当用户单击应用程序中的按钮时,我需要获取用户的当前位置。但问题是当单击按钮时,它不会更新到当前位置,而是获取上一个位置。但是当我在 iphone 应用程序中重置位置警告时,它会得到正确的位置。
这是我为此应用程序执行的代码步骤,以获取用户的当前位置...
首先我导入应用程序...
然后我使用全局文件来保存应用程序的数据,因为我需要通过应用程序访问它们。
所以我在 globle.m 和 .h 文件中所做的是......
CLLocationManager* locationManager;
@synthesize locationManager
+ (Globals*)sharedGlobals {
@synchronized(self) {
if(_sharedGlobals == nil) {
_sharedGlobals = [[super allocWithZone:NULL] init];
_sharedGlobals.locationManager = [[CLLocationManager alloc]init];
[_sharedGlobals.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
}
}
return _sharedGlobals;
}
然后在我的另一个视图控制器中,我将 CLLocationManagerDelegate 放在 .m 文件中
-(IBAction) didTapSearchbtn{
if (![CLLocationManager locationServicesEnabled]) {
}else {
[[Globals sharedGlobals].geoLocations removeAllObjects];
search.text = nil;
[Globals sharedGlobals].fromTextField = NO;
[[Globals sharedGlobals].locationManager setDelegate:self];
[[Globals sharedGlobals].locationManager startUpdatingLocation];
}
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if (newLocation.horizontalAccuracy < 0) return;
[[Globals sharedGlobals].locationManager setDelegate:nil];
[[Globals sharedGlobals].locationManager stopUpdatingLocation];
[[Globals sharedGlobals].geoLocations setObject:[[NSString alloc] initWithFormat:@"%f", newLocation.coordinate.latitude] forKey:@"geolat"];
[[Globals sharedGlobals].geoLocations setObject:[[NSString alloc] initWithFormat:@"%f", newLocation.coordinate.longitude] forKey:@"geolong"];
[self retriveDataFromInternet];
[[Globals sharedGlobals].locationManager release];
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
//GPS error
[[Globals sharedGlobals].locationManager setDelegate:nil];
[[Globals sharedGlobals].locationManager stopUpdatingLocation];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"YumTable!", nil) message:NSLocalizedString(@"Enable Your GPS settings to get your current location", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok", nil) otherButtonTitles:nil];
[alert show];
[alert release];
[[Globals sharedGlobals].locationManager release];
}
我把标签放到我的视图控制器上,然后去不同的地方获取纬度和经度..但总是得到相同的纬度和经度......但是当我重置位置警告并再次运行应用程序时,它采用了正确的纬度和经度。 ..所以如果我需要始终获取当前位置,我必须重新设置它。但是我需要的是每次单击搜索按钮时都获取当前位置...
任何人都可以说出这段代码有什么问题吗,任何人都可以帮助我....
也非常非常抱歉我的英语不好...... :)