一、簡介
- 優點:
- 該框架可以使用block接收用戶的位置
- 而corelocation框架定位使用代理進行傳值-> 相比較而言corelocation框架定位代碼比較分散
- 框架存在問題
- 此框架針對于iOS9.0 ,前臺授權時,后臺是無法獲取用戶位置
- 使用
- 下載框架(locationManager框架)
- 使用block進行定位(帶delayUntilAuthorized參數的定位:超時時間從什么時候開始計算)(依然要配置info.plist文件對應的鍵值對)
- 通過定位請求ID分別取消定位(不會回調block)和強制完成定位(會回調block)
二、基本使用
#import "ViewController.h"
#import "INTULocationManager.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
INTULocationManager *locMgr = [INTULocationManager sharedInstance];
// delayUntilAuthorized 超時計時從什么時候開始
INTULocationRequestID requestID = [locMgr requestLocationWithDesiredAccuracy:INTULocationAccuracyCity
timeout:3.0
delayUntilAuthorized:NO
block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
if (status == INTULocationStatusSuccess) {
NSLog(@"---%@", currentLocation);
}else
{
NSLog(@"錯誤 %zd", status);
}
}];
// 強制完成定位,會執行block內容
// [[INTULocationManager sharedInstance] forceCompleteLocationRequest:requestID];
// 取消位置請求(不會回調block)
[[INTULocationManager sharedInstance] cancelLocationRequest:requestID];
}
- (void)subscript
{
INTULocationManager *locMgr = [INTULocationManager sharedInstance];
[locMgr subscribeToLocationUpdatesWithDesiredAccuracy:INTULocationAccuracyHouse
block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
if (status == INTULocationStatusSuccess) {
NSLog(@"定位");
}
else {
NSLog(@"失敗");
}
}];
}
@end
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。