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")
}
}
を使用するように要求しているユーザに表示されるものです、好きなテキスト値で、このキー NSLocationAlwaysUsageDescriptionあなたのInfo.plistファイルに追加する - のように働いていますチャーム。ご協力いただきありがとうございます!私が尋ねることができるのであれば、そのリクエストはなぜなのでしょうか?コードをテストしている間にアプリがアクティブだった場合でも? – user6394273
地域の監視を使用するには、あなたはrequestAlwaysAuthorization()をしなければならないと思います。 このチュートリアルではさらに詳しい情報を提供しています http://shrikar.com/swift-tutorial-corelocation-and-region-monitoring-in-ios-8/ –