2017-03-15 8 views
0

미리 알림을 기본 미리 알림 위치에 저장하고 싶습니다. 내 버튼을 누를 때 나는 치명적인 오류가 발생합니다 : 선택 사양 값을 풀기 동안 예기치 않게 전무를 발견 ... 나는이 꽤 새로운 오전과 내가 찾은 대부분의 예는 지나치게 복잡하거나하지 3.스위프트 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. 
} 


}