在 iOS 应用的后台设置提醒
Setting a reminder in the background of an iOS app
我正在尝试在用户进入某个区域时创建提醒。该代码用于在应用程序打开时创建提醒。但是,当我在应用程序处于后台时调用相同的代码时,出现致命错误:在展开可选值时意外发现 nil。 AppDelegate 中正在调用以下代码。
var eventStore: EKEventStore!
func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
let reminder = EKReminder(eventStore: self.eventStore) //This is where I get the error
let date = NSDate()
reminder.title = "Do you have your bags?"
let dueDateComponents = dateComponentFromNSDate(date.dateByAddingTimeInterval(Double(secondReminderStores) * 60.0))
reminder.dueDateComponents = dueDateComponents
reminder.calendar = self.eventStore.defaultCalendarForNewReminders()
do {
try self.eventStore.saveReminder(reminder, commit: true)
}catch{
print("Error creating and saving new reminder : \(error)")
}
这一行:
var eventStore: EKEventStore!
...创建 eventStore
变量 (属性) 并设置其类型,但实际上并未为其分配任何 EKEventStore 实例值。因此 eventStore
是 nil
,因为这是任何未初始化的 Optional 的默认值。您没有显示任何 other 代码曾为其分配任何 EKEventStore 实例值。因此,当这条线出现时,它仍然是 nil
:
let reminder = EKReminder(eventStore: self.eventStore)
...所以你崩溃了。一切都完美、整洁、合乎逻辑。
我正在尝试在用户进入某个区域时创建提醒。该代码用于在应用程序打开时创建提醒。但是,当我在应用程序处于后台时调用相同的代码时,出现致命错误:在展开可选值时意外发现 nil。 AppDelegate 中正在调用以下代码。
var eventStore: EKEventStore!
func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
let reminder = EKReminder(eventStore: self.eventStore) //This is where I get the error
let date = NSDate()
reminder.title = "Do you have your bags?"
let dueDateComponents = dateComponentFromNSDate(date.dateByAddingTimeInterval(Double(secondReminderStores) * 60.0))
reminder.dueDateComponents = dueDateComponents
reminder.calendar = self.eventStore.defaultCalendarForNewReminders()
do {
try self.eventStore.saveReminder(reminder, commit: true)
}catch{
print("Error creating and saving new reminder : \(error)")
}
这一行:
var eventStore: EKEventStore!
...创建 eventStore
变量 (属性) 并设置其类型,但实际上并未为其分配任何 EKEventStore 实例值。因此 eventStore
是 nil
,因为这是任何未初始化的 Optional 的默认值。您没有显示任何 other 代码曾为其分配任何 EKEventStore 实例值。因此,当这条线出现时,它仍然是 nil
:
let reminder = EKReminder(eventStore: self.eventStore)
...所以你崩溃了。一切都完美、整洁、合乎逻辑。