Xcode 7 Swift - showsUserLocation = true not working

时间:2015-09-29 00:32:48

标签: ios xcode macos swift

我一直在尝试制作自己的mapView,以显示您当前的位置,因此我去观看 Vea Software&#39> 视频链接found here并执行了以下步骤

  1. 写了代码:

    //
    //  ViewController.swift
    //  MapView
    //
    //  Created by HTML SUES ADMIN on 10/5/15.
    //  Copyright © 2015 HTML SEUS. All rights reserved.
    //
    
    import UIKit
    import MapKit
    import CoreLocation
    
    class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate
    {
    @IBOutlet weak var mapView: MKMapView!
    
    let locationManager = CLLocationManager()
    
    override func viewDidLoad()
    {
    super.viewDidLoad()
    
    self.locationManager.delegate = self
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
    self.locationManager.requestWhenInUseAuthorization()
    self.locationManager.requestAlwaysAuthorization()
    self.locationManager.startUpdatingLocation()
    self.mapView.showsUserLocation = true
    
    
    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
    }
    
    // MARK: - Location Delegate Methods
    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    
    let location = locations.last
    
    let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
    
    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))
    
    self.mapView.setRegion(region, animated: true)
    
    self.locationManager.stopUpdatingLocation()
    
    }
    
        func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
    print("Errors: " + error.localizedDescription)
            }
    
    }
    
  2. 意识到我犯了一个错误并在

    下添加了这段代码
    super.viewDidLoad()
    

    我补充说,

    self.locationManager.requestWhenInUseAuthorization()
    self.locationManager.requestAlwaysAuthorization()
    
  3. Info.plist下添加了此内容(它是一个imgur文件/无下载)
  4. 让Xcode项目得到地图以获取位置通知,但没有显示当前位置。而是想出了这个
  5.   

    错误:操作无法完成。 (kCLErrorDomain错误0。)

         

    错误:操作无法完成。 (kCLErrorDomain错误0。)

    是的2,我认为是因为

        self.locationManager.requestWhenInUseAuthorization()
        self.locationManager.requestAlwaysAuthorization()
    

    但也许是因为该位置不在iPhone模拟器中,因此它会出错。

    所以有两件事可以帮助我:

    1. 如果有办法,如何查找当前位置?

    2. 为什么它只适用于第一个 View Controller 而不是第二个?它嵌入在导航控制器中。

1 个答案:

答案 0 :(得分:1)

好的开始我知道这回答我自己的问题很奇怪但经过进一步的研究我得出了这个答案

  

错误:操作无法完成。 (kCLErrorDomain错误0。)=如果您选中了Scheme / Edit Scheme / Options / Allow Location Simulation但没有设置默认位置,则会出现此错误。

没有设置默认位置。 - 感谢所有帮助过的人