Синхронизация устройства с устройством (если это то, чего вы пытаетесь достичь) может быть довольно сложной.Вы можете реализовать свой собственный протокол обнаружения и передачи данных и что-то сделать таким образом, но это может быть довольно трудоемким делом.
Синхронизировать устройство с сервера на устройство немного проще, при условии, что у вас уже есть сервер с некоторой формой системы регистрации / входа в систему.Тогда вам просто нужен способ сообщить текущее состояние базы данных на сервер, а затем снова вернуться с сервера на другие устройства.Опять же, для этого требуется немало работы, но, по крайней мере, логика определения того, какие устройства синхронизируются с какими другими устройствами и как они передают данные от одного к другому, все подразумевается в работе сервера.
Что касается iCloud, то программный контент, который вы через него синхронизируете, должен быть получен из UIDocument
, поэтому он не поможет вам с общими сущностями базовых данных.
Если вы ищетеготовое решение, которое синхронизирует весь ваш контент Core Data с одного устройства на другое без специального кода, тогда его действительно нет.Самое близкое, что вы можете разумно получить, это отправить весь файл .sqlite
, который ваше приложение использует, с одного устройства на другое, перезаписав файл целевых устройств .sqlite
.Это прекрасно работает, если ваша синхронизация должна быть только однонаправленной, но, очевидно, не подходит для других случаев использования.Возможно, вы могли бы использовать эту модель с iCloud, если вы можете заставить ее синхронизировать весь файл .sqlite
вашего приложения в качестве атомарного объекта.