在我的应用程序中,有一个按钮可以向DataBase添加记录。每次用户点击该按钮时,他都会向DB添加一条记录。该记录的一部分应该是用户点击按钮时的位置。
因此,在我的代码中,当点击按钮时,我会调用一个跟踪用户位置的方法。麻烦的是,iPhone无法立即找到用户的位置,因此保存记录而没有坐标(如果我在10秒后创建另一条记录,则一切正常)。
有没有办法只在他按下按钮并在可用时添加坐标时跟踪用户?
答案 0 :(得分:3)
@property(nonatomic,strong) CLLocationManager *locationManager;
ViewDidLoad中的
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate=self;
if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[self.locationManager requestAlwaysAuthorization];
}
if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
{
[self.locationManager requestWhenInUseAuthorization];
}
然后
-(IBAction)button_Clicked:(id)sender
{
[self.locationManager startUpdatingLocation];
}
#pragma mark - Location Manager delegate
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray<CLLocation *> *)locations
{
CLLocation *location = [locations firstObject];
CLLocationCoordinate2D coordinate = location.coordinate;
}