地理围栏 didEnterRegion 不调用存储的 CoreData

问题描述

我正在尝试使用 didEnterRegion 来安排通知,并使用 didExitRegion 根据存储在 CoreData 文件中的数据取消通知。它似乎无法访问 CoreData。我想根据人员位置安排通知

我该如何解决这个问题?

func locationManager(_ manager: CLLocationManager,didEnterRegion region: CLRegion) {
    
    let ident = region.identifier
    scheduleLocationNotification(ident: ident)
    
}

func scheduleLocationNotification(ident: String) {
    let count = reminderArray.count
    print("Started Scheduled Geo")
    
    for i in 0...count {
        
        let reminder = reminderArray?[i]
        let id = reminder?.identity
        
        let date = reminderArray?[i].time ?? Date()
        var time: String = ""

        let formatter = DateFormatter()
        formatter.timeStyle = .short
        formatter.dateStyle = .none
        
        if reminderArray?[i].time != nil {
            time = formatter.string(from: date)
        }

        if reminder?.active == true {
            if id == ident {
                scheduler.weekDaySchedule(time: time)
                print("GeoScheduled Notifications")
            }
        }
    }
}

func locationManager(_ manager: CLLocationManager,didExitRegion region: CLRegion) {
   
    let ident = region.identifier
    cancelLocationNotification(ident: ident)
    
}

func cancelLocationNotification(ident: String) {

    let count = reminderArray.count
    print("Started Cancel Geo")
    
    for i in 0...count {
        
        let reminder = reminderArray?[i]
        let id = reminder?.identity
                    
        if reminder?.active == true {
            if id == ident {
                for i in 1...7 {
                    scheduler.cancelNotifications(identity: id! + String(i))
                    print("GeoCanceled Notifications")
                }
            }
          }
    }
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...