我要将提醒保存到默认提醒位置。但是当我按下我的按钮时,我得到了一个致命的错误:在解开一个可选值时意外地发现了nil……我对此非常陌生,我找到的大多数示例都过于复杂,或者不是在Swift 3中。
class ViewController: UIViewController {
var eventStore: EKEventStore?
@IBOutlet weak var reminderText: UITextField!
@IBAction func setReminder(_ sender: Any) {
let reminder = EKReminder(eventStore: self.eventStore!)
reminder.title = "Go to the store and buy milk"
reminder.calendar = (eventStore?.defaultCalendarForNewReminders())!
do {
try eventStore?.save(reminder,
commit: true)
} catch let error {
print("Reminder failed with error \(error.localizedDescription)")
}
}
}发布于 2018-10-12 15:24:11
使用@adamprocter示例,我们还需要在info.plist文件中的消息中添加"NSRemindersUsageDescription“键。我试着添加这个作为评论,但我没有资格。
发布于 2017-03-17 02:05:46
因为这只是一段简单的代码,所以我想我会在我想出答案后发布给任何未来的swifters用户。我总是喜欢简单的例子。
import UIKit
import EventKit
class ViewController: UIViewController {
var eventStore = EKEventStore()
var calendars:Array<EKCalendar> = []
// Not used at this time
@IBOutlet weak var reminderText: UITextField!
@IBAction func setReminder(_ sender: Any) {
let reminder = EKReminder(eventStore: self.eventStore)
reminder.title = "Go to the store and buy milk"
reminder.calendar = eventStore.defaultCalendarForNewReminders()
do {
try eventStore.save(reminder,
commit: true)
} catch let error {
print("Reminder failed with error \(error.localizedDescription)")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// get permission
eventStore.requestAccess(to: EKEntityType.reminder, completion:
{(granted, error) in
if !granted {
print("Access to store not granted")
}
})
// you need calender's permission for the reminders as they live there
calendars = eventStore.calendars(for: EKEntityType.reminder)
for calendar in calendars as [EKCalendar] {
print("Calendar = \(calendar.title)")
}
}
override func viewWillAppear(_ animated: Bool) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}https://stackoverflow.com/questions/42821348
复制相似问题