2017-05-25 58 views
0

我想檢索我的tableView中的當前日期的數據/事件,我想我需要使用EventKit,但不知道如何。如何檢索當天的日曆活動?

這是我嘗試過,但似乎沒有工作:這表明只有部分而不是活動

標籤
class ViewController: UIViewController,UITableViewDelegate{ 

@IBOutlet weak var taskShow: UITableView! 
var titles : [String] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let eventStore = EKEventStore() 

    switch EKEventStore.authorizationStatus(for: .event) { 
    case .authorized: 
     readEvents() 
    case .denied: 
     print("Access denied") 
    case .notDetermined: 

     eventStore.requestAccess(to: .event, completion: { (granted: Bool, NSError) -> Void in 
      if granted { 
       self.readEvents() 

      }else{ 
       print("Access denied") 
      } 



     }) 
    default: 
     print("Case Default") 
    } 
    self.taskShow.reloadData() 
} 

func readEvents() { 


    let eventStore = EKEventStore() 
    let calendars = eventStore.calendars(for: .event) 

    for calendar in calendars { 
     if calendar.source.title == "Work" { 
      let oneMonthAgo = NSDate(timeIntervalSinceNow: -30*24*3600) 
      let oneMonthAfter = NSDate(timeIntervalSinceNow: +30*24*3600) 


      let predicate = eventStore.predicateForEvents(withStart: oneMonthAgo as Date, end: oneMonthAfter as Date, calendars: [calendar]) 

      var events = eventStore.events(matching: predicate) 

      for event in events { 

       titles.append(event.title) 
    }}}} 


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return titles.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath) 


    cell.textLabel!.text = titles[indexPath.row] 
    // Configure the cell... 

    return cell 
} 
+0

入住這https://stackoverflow.com/questions/6077613/fetch-all-events-from-eventstore-eventkit-ios它會幫助你 – Bala

+0

我覺得你越來越事件,但我只好重裝表readEvents()....可能會起作用。 –

+0

@PradeepKashyap沒有它的不工作。 –

回答