2015-07-03 2 views
6

У меня есть приложение IOS 8, которое успешно записывает записи в контейнер Cloudkit по умолчанию. Теперь я хочу читать и обрабатывать эти записи в другом приложении под OS X. Я установил новое приложение с доступом iCloud и с опцией «Укажите настраиваемые контейнеры». Это успешно найдено контейнер исходного приложения и я не имеют ошибок, которые должны быть исправлены в интерфейсе возможностей.Доступ к контейнеру Cloudkit, отличному от Default, с Swift

Все мои поиски говорят мне, что «Возможно, что два приложения, подписанные одним и тем же разработчиком, имеют один и тот же контейнер», но ни один из обучающих документов, которые я могу найти, как получить доступ к данным из пользовательского контейнера. Все примеры, похоже, начинаются с «let container = CKContainer.defaultContainer()». Однако я не хочу получать доступ к записям из контейнера по умолчанию. Я хочу настраиваемый контейнер.

В документации Apple предлагается использовать init (), но это меня тоже озадачило. Это похоже на простой запрос. Надеюсь, кто-то может дать мне простое решение.

ответ

9

Это непроверенный код, но я понимаю, что пользовательские контейнеры позволяют вам делиться этими контейнерами через несколько приложений. На панели «Возможности» вы можете выбрать, какой из всех контейнеров доступен во всех ваших других приложениях, которые вы хотите использовать в этом приложении. Контейнер по умолчанию - iCloud.com.MyCompany.MyApp, который должен быть автоматически выбран. Теперь, когда вы определили, какие контейнеры вы хотите, вы можете получить доступ к ним с помощью моего init()

let container = CKContainer(identifier: "iCloud.com.MyCompany.OneOfMyApps") 

В принципе, идентификатор является один из идентификаторов, перечисленных в ICloud Возможности панели под пользовательские контейнеры.

+0

Взял меня довольно долго - спасибо! – brainray

+0

@ imas145 Могу ли я получить идентификатор от права программно? Нет смысла устанавливать его дважды. (один в праве, другой в CKContainer) –

Смежные вопросы