CCLocationFetcher
Customized location manager for Objective-C
demo
說明
對CoreLocation的封裝疤估。
將定位相關的代碼從 Controller 中分離矮男,封裝到 NSObject 對象中带污。采用 block 回調的方式降低代碼的分散度,方便調用亦易于獲取位置信息浓若。
使用方法
支持cocoapods皇钞,或直接將CCLocationFetcher文件夾拖入工程已日,引用嘿架。
CCLocationFetcher 對象調 startWithCompletionHandler: 方法瓶珊,返回一個存儲定位信息的 LocationModel 對象,所需信息直接用點語法獲取耸彪。以名為location對象為例伞芹,包含:
- location.longitude 經度
- location.latitude 緯度
- location.province 省/直轄市
- location.city 市
- location.subCity 區(qū)/縣
- location.street 街道/路
- location.address 詳細地址(從省開始到街道)
方法一(推薦)
用單例初始化對象并調用 startWithCompletionHandler: 方法即可。隨用隨調蝉娜。
[[CCLocationFetcher sharedInstance] startWithCompletionHandler:^(LocationModel *location) {
NSLog(@"經度:%@--緯度:%@--地址:%@",location.longitude,location.latitude,location.address);
}];
方法二
傳統(tǒng)初始化一個對象唱较,調 startWithCompletionHandler: 方法。對象必須是實例變量召川。
_fetcher = [[CCLocationFetcher alloc] init];
[_fetcher startWithCompletionHandler:^(LocationModel *location) {
NSLog(@"經度:%@--緯度:%@--地址:%@",location.longitude,location.latitude,location.address);
}];
注意
- 定位前確保網(wǎng)絡和定位權限已設置
- 方法一暫無局限性南缓,隨用隨調,推薦
- 方法二需將對象設置為實例變量荧呐,存在局限性