fetchRemindersMatchingPredicate не получает новые данные - PullRequest
0 голосов
/ 26 октября 2018

Я годами использую EventKit в своем приложении (начиная с macOS 10.10), но у него странная проблема в Мохаве.

Ранее, когда я получил EKEventStoreChangedNotification, я мог запросить измененные напоминания следующим образом:

NSPredicate *predicate = [self.eventStore predicateForRemindersInCalendars:@[self.taskCalendar]];  
    [self.eventStore fetchRemindersMatchingPredicate:predicate completion:^(NSArray *reminders) {  
       self.allFetchedTasks = reminders;  
  }];  

Работал как чемпион. Установив точку останова в этом блоке, я мог бы переключиться на Напоминания, изменить заголовок задачи, мгновенно вернуться обратно в отладчик, и массив напоминаний изменился бы (через «po [Remders.firstObject title]»).

Тем не менее, теперь в Мохаве, по-видимому, выборка возвращает старую информацию. Я возвращаюсь в отладчик, как только я изменяю название задачи в напоминаниях, но массив напоминаний все еще содержит старую информацию. Таким образом, [remders.firstObject title] по-прежнему показывает исходный заголовок, а не заголовок, как он существует в настоящее время в напоминаниях. Я могу продолжать изменять заголовок в напоминаниях, и каждый раз, когда меня возвращают в отладчик, я все еще вижу исходное название.

Я также попытался использовать calendarItemsWithExternalIdentifier, но он также возвращает исходное значение.

Если я перезапускаю свое приложение, оно получает последнюю информацию, но, опять же, последующие выборки из-за уведомлений об изменениях возвращают исходное значение.

Не похоже, что EventKit Mojave имеет какое-либо новое кэширование, которым я могу управлять. Что-то еще мне не хватает? Нужно ли мне каждый раз восстанавливать свой self.eventStore?

1 Ответ

0 голосов
/ 02 марта 2019

Это было исправлено в Apple MacOS 10.14.4 Beta 3. выпуск.

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