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 в режиме ожидания является ответом на ваш запрос.