swift学习笔记七定位


代码如下:


import UIKit

import CoreLocation


class ViewController: UIViewController,CLLocationManagerDelegate {


@IBOutlet weak var locationLabel: UILabel! // sb里的定位显示label

var locationManager: CLLocationManager!

override func viewDidLoad() {

super.viewDidLoad()

}

override func preferredStatusBarStyle() -> UIStatusBarStyle {

return UIStatusBarStyle.LightContent

}

@IBAction func myLocationButtonDidTouch(sender: AnyObject) { // sb里的定位触发按钮

locationManager = CLLocationManager()

locationManager.delegate = self

locationManager.desiredAccuracy = kCLLocationAccuracyBest

locationManager.requestAlwaysAuthorization()

locationManager.startUpdatingLocation()

}


override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// dispose of any resources that can be recreated.

}

func locationManager(manager: CLLocationManager,didFailWithError error: NSError) {

self.locationLabel.text = "Error while updating location " + error.localizedDescription

}

func locationManager(manager: CLLocationManager,didUpdateLocations locations: [CLLocation]) {

CLGeocoder().reverseGeocodeLocation(manager.location!,completionHandler: {(placemarks,error)->Void in

if (error != nil) {

self.locationLabel.text = "Reverse geocoder Failed with error" + error!.localizedDescription

return

}

if placemarks!.count > 0 {

let pm = placemarks![0]

self.displayLocationInfo(pm)

} else {

self.locationLabel.text = "Problem with the data received from geocoder"

}

})

}

func displayLocationInfo(placemark: CLPlacemark?) {

if let containsPlacemark = placemark {

//stop updating location to save battery life

locationManager.stopUpdatingLocation()

let locality = (containsPlacemark.locality != nil) ? containsPlacemark.locality : ""

let postalCode = (containsPlacemark.postalCode != nil) ? containsPlacemark.postalCode : ""

let administrativeArea = (containsPlacemark.administrativeArea != nil) ? containsPlacemark.administrativeArea : ""

let country = (containsPlacemark.country != nil) ? containsPlacemark.country : ""

self.locationLabel.text = locality! + postalCode! + administrativeArea! + country!

}

}


}


1.定位要用到coreLocation.framework,记得在info.plist中添加键值如下:
NSLocationAlwaysUsageDescription String where are you
NSLocationWhenInUseUsageDescription String Allow to use location and can send it to me
这样就可以编写定位代码并定位了,这样会有是否允许定位的提示

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...