2016-05-28 10 views
0

私は、ユーザーが設定された地域内にいるときに警告またはローカル通知を表示するために、地域監視を試しています。最初のステップとして、デバッグ領域で動作するかどうかを確認するために印刷行を追加しました。しかし、他の行が印刷されている間、私はdidEnterRegionとdidExitRegionのために何も取得していません。didEnterRegion、ExitExitRegionが呼び出されていません

私は、指定された領域の内外に位置をシミュレートしていますが、私は運がありません。誰かが下のコードを見て、私が逃したものを見ることができれば嬉しいです。ありがとうございました。

import UIKit 
    import CoreLocation 

    class ViewController: UIViewController, CLLocationManagerDelegate { 

    var manager = CLLocationManager?() 



     override func viewDidLoad() { 
      super.viewDidLoad() 
      // Do any additional setup after loading the view, typically from a nib. 
      manager = CLLocationManager() 
      let latitude: CLLocationDegrees = 48.858400 
      let longitude: CLLocationDegrees = 2.294500 
      let center: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude) 
      let radius: CLLocationDistance = CLLocationDistance(100.0) 
      let identifier: String = "Notre Dame" 

      let currRegion = CLCircularRegion(center: center, radius: radius, identifier: identifier) 

      manager?.distanceFilter = 10 
      manager?.desiredAccuracy = kCLLocationAccuracyBest 
      currRegion.notifyOnEntry = true 
      currRegion.notifyOnExit = true 

      manager?.requestWhenInUseAuthorization() 


      manager?.delegate = self 
      manager?.pausesLocationUpdatesAutomatically = true 

      manager?.startMonitoringForRegion(currRegion) 
      manager?.startUpdatingLocation()  


     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 

     func locationManager(manager: CLLocationManager, didStartMonitoringForRegion region: CLRegion) { 
      print("The monitored regions are: \(manager.monitoredRegions)") 
     } 

     func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
      let locValue:CLLocationCoordinate2D = manager.location!.coordinate 
      print("locations = \(locValue.latitude) \(locValue.longitude)") 
     } 

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

     func locationManager(manager: CLLocationManager, didExitRegion region: CLRegion) { 
      NSLog("Exited") 
     } 


    } 

答えて

1

あなたはそれが

マネージャ?.requestWhenInUseAuthorization()

に管理者を変更して動作させることができますか?.requestAlwaysAuthorization()

は、「これはテスト目的のためにある」か、これは素晴らしい場所

+0

を使用するように要求しているユーザに表示されるものです、好きなテキスト値で、このキー NSLocationAlwaysUsageDescriptionあなたのInfo.plistファイルに追加する - のように働いていますチャーム。ご協力いただきありがとうございます!私が尋ねることができるのであれば、そのリクエストはなぜなのでしょうか?コードをテストしている間にアプリがアクティブだった場合でも? – user6394273

+0

地域の監視を使用するには、あなたはrequestAlwaysAuthorization()をしなければならないと思います。 このチュートリアルではさらに詳しい情報を提供しています http://shrikar.com/swift-tutorial-corelocation-and-region-monitoring-in-ios-8/ –

関連する問題