Да, можно синхронизировать данные между различными приложениями с помощью iCloud (разные приложения всегда имеют разные идентификаторы приложений, не так ли?).Используйте права ваших приложений, чтобы указать, к каким контейнерам они должны иметь доступ.Затем используйте общий контейнер для хранения и синхронизации ваших файлов.
Обновление от 30.10.2013 по запросу Динеша Каушика:
- Откройте ваш проект вXcode и выберите проект в ProjectNavigator
- Перейдите в «Возможности» Нажмите (Xcode 5) проекта и найдите раздел iCloud (должен быть справа вверху)
- Здесь вы можетеукажите все контейнеры Ubiquity, к которым приложение должно иметь доступ.
- Для обмена данными между приложениями им необходим общий контейнер Ubiquity.Таким образом, добавьте хотя бы один Ubiquity Container, который используется всеми участвующими приложениями.Самый простой способ использовать только один Ubiquity-контейнер (конечно, одинаковый в каждом приложении)
Когда " подключает " к iCloud, вы используете следующий код для получения URL-адреса Ubiquity:
NSURL * cloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: nil];
Использование nil в качестве идентификатора вернет URL-адрес контейнера Ubiquity по умолчанию.Используйте конкретный идентификатор, чтобы получить URL-адрес другого контейнера Ubiquity.
Контейнер Ubiquity - это просто папка на вашем устройстве.Служба iCloud будет наблюдать за этой папкой и передавать все изменения в ту же папку на других устройствах.
Из моего опыта есть одно золотое правило об iCloud:
НЕ ИСПОЛЬЗУЙТЕ ЕГО!
Я серьезно.iCloud нестабилен и ненадежен.Время от времени ваше приложение может зависать, и вы никогда не узнаете конкретный источник проблемы.Пользователи будут спрашивать, почему синхронизация не работает время от времени, и обвинять вас и ваше приложение в плохой производительности.
iCloud может подойти для простого KeyValueStore, но все остальное - беспорядок.Не трать свое время.Вместо этого используйте другой облачный сервис, например Dropbox.