【问题标题】:Swift - retrieving all events from calendar and get event's participatesSwift - 从日历中检索所有事件并获取事件的参与
【发布时间】:2016-10-01 08:46:57
【问题描述】:

在我的应用程序中,我试图获取在特定时间发生的所有事件。这是我的代码:

    let store = EKEventStore()
    store.requestAccess(to: EKEntityType.event) { (granted, error) in
   if(granted){
      let calendars = store.calendars(for: EKEntityType.event)
      for calendar in calendars {
      let predicate = store.predicateForEvents(withStart: (dates.first?.dateObject)!, end: (dates.last?.dateObject)!, calendars: [calendar])

                store.enumerateEvents(matching: predicate){ (event, stop) in
                    print(event.title)

                }

            }

        }else{
        print(error)
        }

问题在于它只检索生日,而不检索用户创建的事件或当天的假期。 这是我得到的输出: 凯特贝尔诞辰 凯特贝尔诞辰 凯特贝尔诞辰 凯特贝尔诞辰 约翰·苹果籽诞辰 约翰·苹果籽诞辰 约翰苹果籽诞辰 约翰苹果籽诞辰 安娜哈罗诞辰 安娜哈罗诞辰 安娜哈罗诞辰 安娜哈罗诞辰 大卫泰勒诞辰 大卫泰勒诞辰 大卫泰勒诞辰 大卫·泰勒的生日

  • 那么我怎样才能让它工作,以便我可以获取所有事件,包括用户在其日历上创建的事件。
  • 我如何检索每个活动的参与者?

【问题讨论】:

标签: ios swift calendar swift3 eventkit


【解决方案1】:

要从所有日历中获取事件,请将 nil 分配给实例方法 predicateForEvents(withStart:end:calendars:) 的 calendars 参数。

let predicate = store.predicateForEvents(withStart: (dates.first?.dateObject)!, end: (dates.last?.dateObject)!, calendars: nil)

https://developer.apple.com/documentation/eventkit/ekeventstore/1507479-predicateforevents

【讨论】:

  • 直到 iOS 11 这个方法返回所有类型的事件,但在 iOS 12 中,它不返回 Exchange 事件,例如 Outlook 日历事件。
  • @GvSharma ...嘿意味着如果我在 IOS 12 中发送 nil 则无法从所有日历中获取任何事件?...您能简要介绍一下详细信息或参考链接吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2011-08-18
  • 2021-06-02
  • 1970-01-01
  • 2016-07-04
  • 2017-02-26
相关资源
最近更新 更多