首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3创建提醒EKEventStore

Swift 3创建提醒EKEventStore
EN

Stack Overflow用户
提问于 2017-03-16 05:50:54
回答 2查看 5.6K关注 0票数 0

我要将提醒保存到默认提醒位置。但是当我按下我的按钮时,我得到了一个致命的错误:在解开一个可选值时意外地发现了nil……我对此非常陌生,我找到的大多数示例都过于复杂,或者不是在Swift 3中。

代码语言:javascript
复制
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)")
    }

   } 
 }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-12 15:24:11

使用@adamprocter示例,我们还需要在info.plist文件中的消息中添加"NSRemindersUsageDescription“键。我试着添加这个作为评论,但我没有资格。

票数 0
EN

Stack Overflow用户

发布于 2017-03-17 02:05:46

因为这只是一段简单的代码,所以我想我会在我想出答案后发布给任何未来的swifters用户。我总是喜欢简单的例子。

代码语言:javascript
复制
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.
}


}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42821348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档