Swift3 Swift 3创建事件存储
我想将提醒保存到默认的提醒位置。但当我按下按钮时,我得到了一个致命错误:在展开可选值时意外地发现了nil。。。我对这一点很陌生,我找到的大多数例子都过于复杂,或者在Swift 3中没有Swift3 Swift 3创建事件存储,swift3,eventkit,reminders,Swift3,Eventkit,Reminders,我想将提醒保存到默认的提醒位置。但当我按下按钮时,我得到了一个致命错误:在展开可选值时意外地发现了nil。。。我对这一点很陌生,我找到的大多数例子都过于复杂,或者在Swift 3中没有 class ViewController: UIViewController { var eventStore: EKEventStore? @IBOutlet weak var reminderText: UITextField! @IBAction func setReminder(_ sender:
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)")
}
}
}
由于这是一段简单的代码,我想在我找到答案后,我会发布我的答案,以供将来更快的人使用。我总是喜欢简单的例子
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.
}
}
导入UIKit
导入事件工具包
类ViewController:UIViewController{
var eventStore=EKEventStore()
变量日历:数组=[]
//此时不使用
@IBMOutlet弱var提醒文本:UITextField!
@iAction func设置提醒(\发送方:任何){
let remention=ek提醒(eventStore:self.eventStore)
remention.title=“去商店买牛奶”
employment.calendar=eventStore.defaultcalendarfornewemployers()
做{
尝试eventStore.save(提醒,
提交:true)
}捕捉错误{
打印(“提醒失败,错误\(error.localizedDescription)”)
}
}
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
//获得许可
eventStore.requestAccess(到:eEntityType.reminder,完成:
{(已授予,错误)在
如果!当然{
打印(“未授予对存储的访问权”)
}
})
//你需要日历的许可,因为他们住在那里
calendars=eventStore.calendars(用于:eEntityType.reminder)
日历中的日历为[EKCalendar]{
打印(“日历=\(Calendar.title)”)
}
}
覆盖函数视图将出现(uo动画:Bool){
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}
由于这是一段简单的代码,我想在我找到答案后,我会发布我的答案,以供将来更快的人使用。我总是喜欢简单的例子
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.
}
}
导入UIKit
导入事件工具包
类ViewController:UIViewController{
var eventStore=EKEventStore()
变量日历:数组=[]
//此时不使用
@IBMOutlet弱var提醒文本:UITextField!
@iAction func设置提醒(\发送方:任何){
let remention=ek提醒(eventStore:self.eventStore)
remention.title=“去商店买牛奶”
employment.calendar=eventStore.defaultcalendarfornewemployers()
做{
尝试eventStore.save(提醒,
提交:true)
}捕捉错误{
打印(“提醒失败,错误\(error.localizedDescription)”)
}
}
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
//获得许可
eventStore.requestAccess(到:eEntityType.reminder,完成:
{(已授予,错误)在
如果!当然{
打印(“未授予对存储的访问权”)
}
})
//你需要日历的许可,因为他们住在那里
calendars=eventStore.calendars(用于:eEntityType.reminder)
日历中的日历为[EKCalendar]{
打印(“日历=\(Calendar.title)”)
}
}
覆盖函数视图将出现(uo动画:Bool){
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}
对于@adamprocter示例,我们还需要在info.plist文件中的消息中添加“NSRemindersUsageDescription”密钥。我尝试将此添加为注释,但我不符合条件。对于@adamprocter示例,我们还需要在info.plist文件中的消息中添加“NSRemindersUsageDescription”密钥。我尝试添加此作为评论,但我不符合条件。您能帮我在remider中添加alram吗。?您能帮我在remider中添加alram吗。?