Ami*_*ela 0 iphone core-location
小伙子们,
我正在开发一个应用程序,其中我需要多次向用户询问其位置的功能,当用户允许一次使用他的位置时会发生什么,当他导航到另一个部分时,它不会要求他获取他的位置,它正在采取它来自已经缓存的位置.
是否有可能要求用户多次获得他的批准才能获得他的位置?
任何帮助赞赏.
干杯,阿米特
您不需要多次获得权限.
要开始获取更新,请致电:
[locationManager startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)
在调用[locationManager stopUpdatingLocation]之前,您将获得连续的位置更新.
因此,您需要实现委托方法来说明获得新位置时会发生什么.这种委托方法可以做一些简单的事情,比如将位置保存到类变量中供以后使用.
您需要实现的委托功能是:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {}
Run Code Online (Sandbox Code Playgroud)
我应该在这里提醒你.持续运行GPS是电池密集型的(如果您要尽可能快地请求非常准确的读数,您将在大约2.5小时内终止设备).所以,你应该做的是在用户打开应用程序时获得修复,然后调用stopUpdatingLocation.
然后,在您的应用程序中,有一个"找到我"按钮,它将打开LocationManager,获得修复,然后再次关闭LocationManager.您可能希望继续轮询某个位置,直到获得良好的位置.水平准确度
我建议你实现一个NSObject子类,它实现了LocationManagerDelegate协议.然后,该对象将在多个视图控制器之间共享.这是一个中央gpsController的简单实现.
那么,这将是gpsController.h:
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface gpsController : NSObject <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
CLLocation *lastReading;
}
- (id)init;
@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) CLLocation *lastReading;
@end
Run Code Online (Sandbox Code Playgroud)
接下来是gpsController.m:
#import "gpsController.h"
@implementation gpsController
@synthesize locationManager, lastReading;
- (id)init {
if(self = [super init]) {
[[self locationManager] startUpdatingLocation];
self.lastReading = nil;
}
return self;
}
- (CLLocationManager *)locationManager {
if (locationManager) return locationManager;
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
locationManager.delegate = self;
return locationManager;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
self.lastReading = newLocation;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
980 次 |
| 最近记录: |