#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
свойство, но оно равно нулю — даже если у напоминания есть назначенный человек.
Как вы можете добраться до назначенного человека?
Комментарии:
1. «если я создам напоминание, которое «назначено человеку»» Это звучит круто. Какой пользовательский интерфейс для этого?
2. Привет, @matt — в приложении напоминаний iOS, когда вы нажимаете на (i) в строке напоминания, вы можете назначать задачи людям в общем списке. Я добавлю изображение этого в вопрос. Это работает только с общими списками (а «Списки» на самом деле являются календарями с другим именем).
Ответ №1:
Вероятно, это особенность обновленных напоминаний. Но API никогда не обновлялся до соответствия, поэтому к нему нет программного доступа.
Комментарии:
1. Я не согласен с тем, что это конец. Я подал заявку на разработчика в Apple. Посмотрим, что я узнаю — скрестив пальцы, это что-то.
2. Это звучит достойно отчета об ошибке. Однако я не понимаю, почему носитель плохих новостей должен быть выполнен.
3. о, я не голосовал против вас, и я не буду вас казнить.