封裝CLLocationManager, 更簡單的使用

其實(shí)蘋果自身的CLLocationManager挺好用的, 定位準(zhǔn)確, 就是每次使用的時候,要寫一堆東西.上個項(xiàng)目中,我有三處地方都用到了定位, 但是同樣的代碼我不想寫第二遍. 于是我把這個CLLocationManager再封裝了一層. 作為一個單例給外界使用.
首先要封裝,我們還是要使用CLLocationManager. 我們記得要現(xiàn)在info.plist中添加字段.(沒有這個字段的話,就定位不了)
字段二選一就好了:
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription


QQ20160616-3.png

然后為了更加方便的使用,再創(chuàng)建了一個城市類:


QQ20160616-1.png

然后我們看單例的.h文件:


QQ20160616-6.png

也很簡單,暴露出去的屬性只有一個代理.
然后是方法,一個返回單例,還有開始,結(jié)束,最后一個是currentPlaceMark返回當(dāng)前的地理編碼.
最后看代理:
只有一個方法,就是定位結(jié)果的回調(diào).有一個bool值告訴我們定位是成功還是失敗了.

最后看.m文件:


QQ20160616-8.png

從屬性中可以看到,CLLocationManager是一個屬性, 我們就是用這個屬性去做定位的.然后是我們當(dāng)前的城市模型以及原始的地理編碼. 最后是一個updated屬性. 作用于是否停止定位.
然后是千篇一律的單例寫法, 我們在初始化的時候給locationManager創(chuàng)建了一個CLLocationManager對象. 最后記得判斷下當(dāng)前版本.如果是8.0以上的話, 需要設(shè)置requestWhenInUseAuthorization或者requestAlwaysAuthorization.才能正常使用定位功能.

然后是開始定位方法.最終會讓CLLocationManager對象發(fā)起定位,
定位成功會調(diào)用這個方法:


QQ20160616-9.png

可以看到這段代碼很長. 但是我們真正需要的,只是在定位成功后,把城市獲取出來,然后就可以關(guān)閉定位,設(shè)置updated值為YES(由于定位會不斷執(zhí)行多次,而其實(shí)第一次的定位就已經(jīng)很準(zhǔn)確了,所以我們可以在獲得后馬上跳出循環(huán)).再通過代理方法,把城市返回出去.

定位失敗會調(diào)用這個方法:


QQ20160616-11.png

其實(shí)我并沒有遇到定位失敗的情況啦. 但是我還是通過代理告訴外界定位失敗了.

最后剩下的是外界能調(diào)用的兩個方法:


QQ20160616-12.png

一個是停止定位,另外一個是返回原始地理編碼.

以上就是我封裝的定位工具. 非常的簡單. 返回的地址,我只把城市返回出去. 有需要的同學(xué)可以給城市類多添加街道或者區(qū)域等更詳細(xì)的屬性.

控制器的調(diào)用也就幾行代碼:

QQ20160616-13.png

github上有個小demo:https://github.com/byljbdh/ALNLocationTool

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市但狭,隨后出現(xiàn)的幾起案子生均,更是在濱河造成了極大的恐慌咪奖,老刑警劉巖吧趣,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霞捡,居然都是意外死亡奥额,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門歇僧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來图张,“玉大人,你說我怎么就攤上這事诈悍』雎郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵侥钳,是天一觀的道長适袜。 經(jīng)常有香客問我,道長舷夺,這世上最難降的妖魔是什么苦酱? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮冕房,結(jié)果婚禮上躏啰,老公的妹妹穿的比我還像新娘。我一直安慰自己耙册,他們只是感情好给僵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著详拙,像睡著了一般帝际。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饶辙,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天蹲诀,我揣著相機(jī)與錄音,去河邊找鬼弃揽。 笑死脯爪,一個胖子當(dāng)著我的面吹牛则北,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痕慢,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼尚揣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掖举?” 一聲冷哼從身側(cè)響起快骗,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塔次,沒想到半個月后方篮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡励负,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年藕溅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熄守。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜈垮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出裕照,到底是詐尸還是另有隱情,我是刑警寧澤调塌,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布晋南,位于F島的核電站,受9級特大地震影響羔砾,放射性物質(zhì)發(fā)生泄漏负间。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一姜凄、第九天 我趴在偏房一處隱蔽的房頂上張望政溃。 院中可真熱鬧,春花似錦态秧、人聲如沸董虱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愤诱。三九已至,卻和暖如春捐友,著一層夾襖步出監(jiān)牢的瞬間淫半,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工匣砖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留科吭,地道東北人昏滴。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像对人,于是被迫代替她去往敵國和親谣殊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理规伐,服務(wù)發(fā)現(xiàn)蟹倾,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評論 6 13
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法猖闪,類相關(guān)的語法鲜棠,內(nèi)部類的語法,繼承相關(guān)的語法培慌,異常的語法豁陆,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 對于普通企業(yè)的產(chǎn)能而言,他們面對的市場是全球的行業(yè)總體市場需求吵护,這使得他們所占市場份額大多接近于零盒音,意思就是每個企...
    花經(jīng)理閱讀 692評論 0 0
  • 小學(xué)六年級的時候,不知道哪一天馅而,說不上為什么祥诽,咪咪突然就覺得看吳勇很順眼了。 大概是因?yàn)閾Q同桌的關(guān)系瓮恭,咪咪被換到了...
    亭子文閱讀 517評論 3 1