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

#ios #swift #eventkit #ekreminder

#iOS #swift #eventkit #ekreminder

Вопрос:

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

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

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

В качестве напоминания:

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

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

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

Как вы можете добраться до назначенного человека?

Пример подробного описания приложения quot;Напоминанияquot;, в котором назначается лицо

Комментарии:

1. «если я создам напоминание, которое «назначено человеку»» Это звучит круто. Какой пользовательский интерфейс для этого?

2. Привет, @matt — в приложении напоминаний iOS, когда вы нажимаете на (i) в строке напоминания, вы можете назначать задачи людям в общем списке. Я добавлю изображение этого в вопрос. Это работает только с общими списками (а «Списки» на самом деле являются календарями с другим именем).

Ответ №1:

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

Комментарии:

1. Я не согласен с тем, что это конец. Я подал заявку на разработчика в Apple. Посмотрим, что я узнаю — скрестив пальцы, это что-то.

2. Это звучит достойно отчета об ошибке. Однако я не понимаю, почему носитель плохих новостей должен быть выполнен.

3. о, я не голосовал против вас, и я не буду вас казнить.