Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 输入地理位置时获取本地通知_Ios_Swift_Geolocation_Core Location_Uilocalnotification - Fatal编程技术网

Ios 输入地理位置时获取本地通知

Ios 输入地理位置时获取本地通知,ios,swift,geolocation,core-location,uilocalnotification,Ios,Swift,Geolocation,Core Location,Uilocalnotification,当我进入一个地理位置时,我试图得到一个本地通知来触发,我遵循了一些在线教程,我请求始终访问该位置,但我无法让实际的位置监控工作。我有一个GPX文件来模拟进入这个位置。但它从未在该地区开火 以下是我现在掌握的代码: func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) { if region.identifier == "Sparkle" { let notific

当我进入一个地理位置时,我试图得到一个本地通知来触发,我遵循了一些在线教程,我请求始终访问该位置,但我无法让实际的位置监控工作。我有一个GPX文件来模拟进入这个位置。但它从未在该地区开火

以下是我现在掌握的代码:

func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if region.identifier == "Sparkle" {
        let notification = UILocalNotification()
        notification.alertBody = "Dont forget to punch in!"
        notification.regionTriggersOnce = false
    }
}

func locationManager(manager: CLLocationManager, didExitRegion region: CLRegion) {
    if region.identifier == "Sparkle" {
        let notification = UILocalNotification()
        notification.alertBody = "Dont forget to punch out!"
        notification.regionTriggersOnce = false

    }
}

func regionWithGeotification() -> CLCircularRegion {
    // 1
    let sparkle = CLLocationCoordinate2DMake(39.4931008, -87.3789913)
    let region = CLCircularRegion(center: sparkle, radius: 10, identifier: "Sparkle")
    // 2
    region.notifyOnEntry = region.notifyOnEntry
    region.notifyOnExit = region.notifyOnExit
    return region
}
在DidFinishLaunching中,使用AppDelegate的选项

    locationManager.delegate = self
    locationManager.requestAlwaysAuthorization()
    self.locationManager.startMonitoringForRegion(regionWithGeotification())
知道我做错了什么吗

编辑:

这是我的GPX

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode">
<wpt lat="39.4904392" lon="-87.3803517">
    <name>Pawn It</name>
</wpt>
<wpt lat="39.48823178" lon="-87.37907">
    <name>Sparkle</name>
</wpt>
</gpx>

你的应用程序可以访问位置服务吗?是的,我可以。隐私显示应用程序具有地理围栏。请发布您的GPX文件内容,并在您的CLLocationManager上更新更多信息(即,实际声明的位置、设置的属性等)!感谢您的帮助您的GPX文件看起来有缺陷,A)缺少结束标记,B)没有实际移动(两个坐标相同)
import CoreLocation

@UIApplicationMain
 class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate {

var window: UIWindow?

let locationManager = CLLocationManager()


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

  let notificationSettings = UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert, categories: nil)
    UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)

    locationManager.delegate = self
    locationManager.requestAlwaysAuthorization()
    self.locationManager.startMonitoringForRegion(regionWithGeotification())