CoreLocation定位封裝

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 區/縣
  • location.street 街道/路
  • location.address 詳細地址(從省開始到街道)

方法一(推薦)

用單例初始化對象并調用 startWithCompletionHandler: 方法即可。隨用隨調。

[[CCLocationFetcher sharedInstance] startWithCompletionHandler:^(LocationModel *location) {

NSLog(@"經度:%@--緯度:%@--地址:%@",location.longitude,location.latitude,location.address);
}];

方法二

傳統初始化一個對象,調 startWithCompletionHandler: 方法。對象必須是實例變量。

_fetcher = [[CCLocationFetcher alloc] init];
[_fetcher startWithCompletionHandler:^(LocationModel *location) {

NSLog(@"經度:%@--緯度:%@--地址:%@",location.longitude,location.latitude,location.address);
}];

注意

  • 定位前確保網絡和定位權限已設置
  • 方法一暫無局限性,隨用隨調,推薦
  • 方法二需將對象設置為實例變量,存在局限性
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.ios高性能編程 (1).內層 最小的內層平均值和峰值(2).耗電量 高效的算法和數據結構(3).初始化時...
    歐辰_OSR閱讀 29,553評論 8 265
  • 整理來自互聯網 1,JDK:Java Development Kit,java的開發和運行環境,java的開發工具...
    Ncompass閱讀 1,553評論 0 6
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,098評論 25 708
  • 中秋快樂。 希望你吃上喜歡的月餅,有人陪你看月亮。 希望異國他鄉的你們都有人陪。 今年買了中秋禮盒,不是月餅,是鳳...
    舒沐茶閱讀 165評論 0 0
  • 欲速則不達,這個詞大家應該都知道,但是往往在現實生活中,說起來容易,做起來難。 現在流行的“速成”,也就是快速的成...
    微芳閱讀 527評論 0 3