日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Swift使用CoreLocation,你必须要看这一篇

發布時間:2025/3/8 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift使用CoreLocation,你必须要看这一篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CoreLocation,在我們這里討論的是一個最常用的東西,就是用Location Manger獲取用戶當前的位置。

整個的來說非常簡單。只要這樣:

import CoreLocation

需要使用整個框架,那么引入整個框架就是必須的。然后需要在你的類里實現一個protocol。就是CLLocationManagerDelegate,并在代碼中實現protocol里的相關方法。分別是這樣喝這樣:

class ViewController: UIViewController, CLLocationManagerDelegate //MARK: CoreLocationManagerDelegatefunc locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){println("get location")var location:CLLocation = locations[locations.count-1] as CLLocationif (location.horizontalAccuracy > 0) {self.locationManager.stopUpdatingLocation()println(location.coordinate)self.textLabel.text = "latitude \(location.coordinate.latitude) longitude \(location.coordinate.longitude)"}}func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {println(error)self.textLabel.text = "get location error"}

這些代碼的功能也很簡單。獲取用戶的經度和緯度,之后在界面的UILabel中顯示出來。

在viewWillAppear中開始獲取地理位置,在viewDidDisappear里停止。手機費電的幾個地方就包括地理位置過度頻繁的更新這一項。所以,一定要記得不用的時候就不要再請求系統的GPS數據。否則,用戶在設置的費電大戶里是看得到的。

override func viewWillAppear(animated: Bool) {super.viewWillAppear(animated)self.locationManager.startUpdatingLocation()}override func viewDidDisappear(animated: Bool) {super.viewDidDisappear(animated)self.locationManager.stopUpdatingLocation()}

只有這些代碼還是沒有辦法工作的。因為,在iOS8里修改了政策。Look here?

if self.locationManager.respondsToSelector("requestAlwaysAuthorization") {println("requestAlwaysAuthorization")self.locationManager.requestAlwaysAuthorization()}

這個是為了兼容iOS7和iOS8的代碼,加入了一個判斷。在iOS8中需要詢問用戶是否同意使用位置信息,否則的話該功能不可用。那么加這個就可以么?NO!!!還需要在,這里就是重點了。在plist文件里配置一個選項。

說到具體的配置有兩個,分別是:requestWhenInUseAuthorization()和requestAlwaysAuthorization()這兩個請求方法。一個是用戶使用的時候才用到定位,一個是一直在后臺獲取更新的定位信息。最后的一個在一定的時候會觸發一個系統的提醒,說這個APP一直在后臺獲取你的位置信息是否允許之類的。這兩個請求方法對應的plist配置也不一樣,分別是NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription。至于在plist添加的方法,就是在plist中添加一個鍵值對,然后把請求允許對應的Key值復制粘貼進去就可以了。value值是什么都可以,這個值會在請求允許的對話框中顯示出來給用戶看。總之是你自己定的。

運行你的APP,你會看到請求提示了:

?

歡迎加群互相學習,共同進步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,轉載請注明出處!http://www.cnblogs.com/sunshine-anycall/p/4147165.html

總結

以上是生活随笔為你收集整理的Swift使用CoreLocation,你必须要看这一篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。