Как получить назначение напоминания (EKReminder) в iOS?

[Обновление: я отправил официальный запрос обратной связи Apple Developer для обновления EventKit API и документации]

[Обновление: я связался со службой поддержки Apple, и мне сказали прочитать документы... так что я думаю, что Мэтт прав, они просто недоступны.]

Согласно Apple Docs, EKReminder является подклассом EKCalendarItem. Он имеет следующие (множество) свойств:

Как напоминание:

  • priority: Int - приоритет напоминания.
  • startDateComponents: DateComponents? - Дата начала выполнения задачи.
  • dueDateComponents: DateComponents? - Дата, к которой напоминание должно быть завершено.
  • isCompleted: Bool — логическое значение, определяющее, помечено ли напоминание как завершенное.
  • Дата завершения: Дата? Дата завершения напоминания.

Как элемент календаря:

  • Название: Строка! -Название элемента календаря.
  • местоположение: строка? - Местоположение, связанное с элементом календаря.
  • Дата создания: Дата? - Дата создания этого элемента календаря.
  • lastModifiedDate: Дата? - Дата последнего изменения элемента календаря.
  • часовой пояс: часовой пояс? - Часовой пояс элемента календаря.
  • URL: URL?
  • hasNotes: Bool — логическое значение, указывающее, есть ли в элементе календаря заметки.
  • примечания: Строка? - Заметки, связанные с элементом календаря.
  • hasAttendees: Bool — логическое значение, указывающее, есть ли у элемента календаря посетители.
  • участники: [EKParticipant]? -Участники, связанные с элементом календаря, в виде массива объектов EKParticipant.

Я могу распечатать любой из этих элементов из напоминаний в своем приложении.

Однако если я создам напоминание, назначенное человеку, я не смогу получить эту информацию. Я знаю, что это должно где-то храниться.

Если распечатать напоминание, получится что-то вроде этого:

EKReminder <0x0000000> {title = Do the thing; dueDate = 2021-02-25 08:00:00 +0000; completionDate = (null); priority = 0; calendarItemIdentifier = XXXXX-XXXX-XXXX-XXXX-XXXXXX; alarms = (null)}

Если хотите, можете распечатать любой другой элемент, например print(reminder.notes!).

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

Как добраться до назначенного лица?

Пример сведений о приложении


person jessi    schedule 24.02.2021    source источник
comment
если я создам напоминание, назначенное человеку Это звучит круто. Какой пользовательский интерфейс для этого?   -  person matt    schedule 24.02.2021
comment
Привет, @matt — в приложении «Напоминания» для iOS, когда вы нажимаете (i) в строке напоминания, вы можете назначать задачи людям в общем списке. Я добавлю изображение этого в вопрос. Он работает только с общими списками (а списки на самом деле являются календарями с другим именем).   -  person jessi    schedule 24.02.2021


Ответы (1)


Вероятно, это особенность обновленных напоминаний. Но API никогда не обновлялся, поэтому к нему нет программного доступа.

person matt    schedule 24.02.2021
comment
Я не согласен с тем, что это конец. Я отправил билет разработчика в Apple. Посмотрим, что я узнаю - скрестим пальцы, это что-то. - person jessi; 24.02.2021
comment
Звучит достойно отчета об ошибке. Я не понимаю, однако, зачем казнить вестника плохих новостей. - person matt; 24.02.2021
comment
о, я не проголосовал за тебя, и я не буду тебя казнить. - person jessi; 24.02.2021