Пустые свойства EKEvent, полученные событиями (соответствие :) - PullRequest
0 голосов
/ 06 февраля 2019

Я создаю виджет сегодня, который похож на родной виджет календаря iOS, но показывает все события в течение следующих 24 часов.Я загружаю события календаря, используя EKEventStore().events(matching: aPredicate).Я на самом деле получаю все события, но большинство их свойств (например, местоположение, тревоги, календарь и т. Д.) Являются пустыми строками или nil.

. Я обнаружил, что при печати массива событий на консоль все свойствавдруг имеют значения, и я могу легко получить доступ и отобразить их.Без печати я получаю поведение, описанное выше.

В моем EventManager классе:

var events: [EKEvent]? // Will be accessed by the TodayViewController

func updateEvents() {
  let store = EKEventStore()
  requestAccess(store: store) // is also defined in this class

  // Create Date Components for fetching
  let calendar = Calendar.current
  let today = Date()
  var tomorrowComponents = DateComponents()
  tomorrowComponents.day = 1
  let tmrw = calendar.date(byAdding: tomorrowComponents, to: Date())

  // Creating predicate
  var calPredicate: NSPredicate? = nil
  if let tomorrow = tmrw {
    calPredicate = store.predicateForEvents(withStart: today, end: tomorrow, calendars: nil)
  }

  // Fetching events
  if let aPredicate = calPredicate {
    self.events = store.events(matching: aPredicate)
  }

  print("Events: \(events as Any)") // this line is very important
}

Что я пропустил, что делает это утверждение print(..) необходимым?Или это просто странное поведение iOS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...