2017-03-15 1 views
0

リマインダーをデフォルトリマインダーの場所に保存します。私は私のボタンを押すと、しかし、私は致命的なエラーが出る:オプションの値をアンラップしながら、予想外にnilを見つけ...私はこれまでかなり新しいですし、私が見つけほとんどの例は、過度に複雑か3Swift 3リマインダーを作成するEKEventStore

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)") 
    } 

    } 
} 

答えて

2

スウィフトにありそのシンプルなコードとして、私は将来の志望者のためにそれを理解した後、私が答えを投稿すると思った。私はいつも簡単な例が好きです。

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. 
} 


} 
関連する問題