https://github.com/intuit/LocationManager
> 优点:可以使用block接收用户的位置,corelocation框架定位使用代理进行传值,代码比较分散
》下载框架(locationManager框架)
》使用block进行定位(带delayUntilAuthorized参数的定位:超时时间从什么时候开始计算)(依然要配置info.plist文件对应的键值对)
》通过定位请求ID分别取消定位(不会回调block)和强制完成定位(会回调block)
> 优点:可以使用block接收用户的位置,corelocation框架定位使用代理进行传值,代码比较分散
》下载框架(locationManager框架)
》使用block进行定位(带delayUntilAuthorized参数的定位:超时时间从什么时候开始计算)(依然要配置info.plist文件对应的键值对)
》通过定位请求ID分别取消定位(不会回调block)和强制完成定位(会回调block)
> 注意:此框架针对于iOS9.0 ,前台授权时,后台是无法获取用户位置
//
// ViewController.m
#import "ViewController.h"
#import "INTULocationManager.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
INTULocationManager *locMgr = [INTULocationManager sharedInstance];
[locMgr requestLocationWithDesiredAccuracy:INTULocationAccuracyCity
timeout:5.0
delayUntilAuthorized:YES
block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
if (status == INTULocationStatusSuccess) {
NSLog(@"%@", currentLocation);
}
else
{
NSLog(@"cuowu--%zd", status);
}
}];
//
// INTULocationManager *locMgr = [INTULocationManager sharedInstance];
// INTULocationRequestID requestID = [locMgr subscribeToLocationUpdatesWithBlock:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
// if (status == INTULocationStatusSuccess) {
// NSLog(@"%@", currentLocation);
// }
// else
// {
// NSLog(@"cuowu--%zd", status);
// }
// }];
// Force the request to complete early, like a manual timeout (will execute the block)
// [[INTULocationManager sharedInstance] forceCompleteLocationRequest:requestID];
// Cancel the request (won't execute the block)
// [[INTULocationManager sharedInstance] cancelLocationRequest:requestID];
}
@end