iOS IMAP Синхронизация с MailCore Лучшие практики

Я разрабатываю приложение, в котором локальная база данных Core Data синхронизируется с учетной записью электронной почты IMAP пользователя. Я использую MailCore ( http://libmailcore.com/) для обработки всех вызовов API IMAP, но, похоже, есть некоторые недостатки. Вот что я хочу, чтобы мое приложение могло делать:

  • Локальная копия последних 50 писем на сервере
  • Загрузите все новые электронные письма, полученные пользователем с момента последней загрузки, сохраняя максимум 50 на устройстве.
  • Удалить локальные письма, которые были удалены на сервере.

Единственные методы, которые MailCore предоставляет для получения электронной почты, следующие:

- (NSArray *)messagesFromSequenceNumber:(NSUInteger)startNum to:(NSUInteger)endNum withFetchAttributes:(CTFetchAttributes)attrs

- (NSArray *)messagesFromUID:(NSUInteger)startUID to:(NSUInteger)endUID withFetchAttributes:(CTFetchAttributes)attrs

Прямо сейчас я получаю последние электронные письма с сервера и загружаю всю информацию о них, а затем извлекаю последние 50 идентификаторов UID с сервера и сравниваю их с моим локальным кэшем, чтобы увидеть, что было удалено. Это кажется очень неэффективным. Есть ли лучший способ синхронизации входящих сообщений без двух обращений к серверу (как минимум)?

1 ответ

Проверьте возможности серверов imap. Реализация возможностей NOOP и imap в режиме ожидания является ответом на ваш запрос.

Другие вопросы по тегам