Я хочу синхронизировать базовые данные на iPhone с MongoDB на сервере Sinatra.
Когда iPhone получает сообщение от сервера чата Node.js. сообщение содержит BSI ObjectId отправителя (строка). Чтобы iPhone сохранил это сообщение, я нахожу пользователя с тем же идентификатором в Базовых данных. Я хочу быть в состоянии сделать что-то вроде objectWithID
. Другими словами, я хочу, чтобы NSManagedObjectID были такими же, как и у BSO-объектов MongoDB. Еще одна вещь, которую я бы проверил: если в менеджментеObjectContext нет пользователей с идентификатором отправителя, я получу его из persistentStore, а если его нет, я его создам. Это много нужно сделать только для того, чтобы поддерживать отношения между Сообщением и Отправителем. Может быть, я должен просто сохранить атрибут отправителя объекта Message как его BSON ObjectId в виде строки, а не как пользователь NSManagedObject.
Что вы рекомендуете? Должен ли я просто использовать MongoDB на iPhone тоже? Я только что понял, что для этого есть драйвер Objective-C. Но я только начинал знакомиться с Core Data, и у него есть классные вещи (такие как поддержка отмены), которые я, возможно, захочу использовать ... Сейчас я просто использую их для простой выборки и постоянного хранения, поэтому я мог бы заменить это. Но я планирую реализовать поддержку отмены в будущем только потому, что считаю, что это хорошее удобство использования. Я предпочитаю вариант отменить, чем отвечать на всплывающее окно с подтверждением, например, мне нравится, как GMail позволяет отменить отправку или отменить удаление сообщений и т. Д.
Спасибо!
Мэтт