2015-06-30 27 views
1

我有一個模擬移動到座標的GPX。我無法讓CLCircularRegion開火。我試圖把代碼放在任何地方。以下是我正在使用的內容:CLCircularRegion didEnterRegion不起作用

var center: CLLocationCoordinate2D = CLLocationCoordinate2DMake(37.33171100, -122.03018400) 
var radius: CLLocationDistance = CLLocationDistance(300) 
var identifier: String = "Destination" 
let region = CLCircularRegion(center: center, radius: radius, identifier: identifier) 
manager!.startMonitoringForRegion(region) 

我已將此放置到處。我已經把這個在:

viewDidLoad 
viewWillAppear 
viewDidAppear 
mapViewDidFinishLoadingMap(mapView: MKMapView! 
mapViewDidFinishRenderingMap(mapView: MKMapView!, fullyRendered: Bool) 
locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) 

這裏是我的GPX文件:

<?xml version="1.0"?> 
    <gpx version="1.1" creator="Xcode"> 
     <wpt lat="37.331711" lon="-122.030184"> 
       <name>Apple</name> 
     </wpt> 
     <wpt lat="37.422455" lon="-122.084306"> 
       <name>Google</name> 
     </wpt> 
</gpx> 

Println作品didStartMonitoringRegion並打印區域的信息到日誌,但它不火。似乎沒有任何工作,它使我瘋狂。這是我的完整程序。

import UIKit 
import CoreLocation 
import MapKit 

class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate { 

var mapView: MKMapView? 
var manager: CLLocationManager? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    mapView = MKMapView(frame: CGRectMake(0.0, 0.0, view.frame.size.width, view.frame.size.height)) 
    self.mapView!.delegate = self 
    mapView!.showsUserLocation = true 
    view.addSubview(mapView!) 
    } 

func locationManager(manager: CLLocationManager!, didEnterRegion region: CLRegion!) { 
    println("Entered") 
    } 

func locationManager(manager: CLLocationManager!, didStartMonitoringForRegion region: CLRegion!) { 
    println("Monitoring") 
    println(region) 
} 

func mapViewDidFinishLoadingMap(mapView: MKMapView!) { 
    manager = CLLocationManager() 
    manager!.delegate = self 
    manager!.desiredAccuracy = kCLLocationAccuracyBest 
    manager!.startUpdatingLocation() 

    var center: CLLocationCoordinate2D = CLLocationCoordinate2DMake(37.33171100, -122.03018400) 
    var radius: CLLocationDistance = CLLocationDistance(300) 
    var identifier: String = "Destination" 
    let region = CLCircularRegion(center: center, radius: radius, identifier: identifier) 
    manager!.startMonitoringForRegion(region) 
    } 
} 

回答

1

你一定是在開玩笑吧。因爲我用NSLocationWhenInUseUsageDescription代替NSLocationAlwaysUsageDescriptioninfo.plist