2014-10-10 2 views
1

Я новичок в CloudKit и сейчас анализирую CloudKitAtlas из библиотеки разработчиков. Я создаю приложение, где я хочу «обмениваться» данными с другим пользователем того же приложения.Передача значения от приложения CloudKit другому пользователю

У меня есть CKContainer в частной базе данных, где пользователь ставит все созданные словари. Теперь я хочу дать ему возможность поделиться какой-то частью своих данных с другим пользователем (создать общедоступный containerWithIdentifier). Я знаю, что можно проверить каждый адрес электронной почты из адресной книги и получить результат, у которого установлено это приложение. Поэтому пользователь может выбрать, кто сможет увидеть его данные.

Вопрос заключается в том, чтобы сказать другое приложение пользователя «смотреть, что CKContainer на моих общих данных» :)

Любой уже сделать что-то вроде этого?

ответ

1

Вы можете перечислить всех пользователей из вашей addresbook, в которой установлено приложение, используя метод findAllContactUserInfosWithCompletionHandler контейнера. Он вернет массив, из которого вы можете получить recordID. Если вы хотите поделиться чем-то с одним из этих пользователей, создайте запись, в которую вы поместите этот идентификатор в поле. При запуске вашего приложения вы создадите подписку с предикатом, который ищет это поле TO, и сравните его с вашим собственным пользовательским recordId. Поэтому, если запись создается с вашим идентификатором в поле TO, вы получите уведомление. Все, что вы хотите отправить другому пользователю, должно быть в общедоступной базе данных. Я работаю над чем-то подобным. Код можно найти по адресу https://github.com/evermeer/EVCloudKitDao (незавершенное производство)

+0

Это проецировать does't работа для меня, и я кодирования только Objective-C, так что я должен попытаться сделать это мой путь :), но голосовать вверх за вашу помощь в любом случае .. – Mayo323

+0

ли вы следовать инструкции по загрузке зависимостей с использованием cocoapods? –

+0

Нет. Я просто проверил ваш код. Эта программа будет чем-то вроде посланника? – Mayo323

0

Проверьте CKContainer.h в системе CloudKit, они обнаруживают людей в ваших контактах по их адресу электронной почты. Если этот адрес электронной почты в контактах не является адресом электронной почты для входа в id (или icloud account?), Я думаю, он не может совпадать.

typedef NS_OPTIONS(NSUInteger, CKApplicationPermissions) { 
    /* Allows the user's record in CloudKit to be discoverable via the user's email address */ 
    CKApplicationPermissionUserDiscoverability   = 1 << 0, 
} NS_AVAILABLE(10_10, 8_0);