Передача значения из приложения CloudKit другому пользователю

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

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

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

Кто-нибудь уже делает что-то подобное?


person Mayo323    schedule 10.10.2014    source источник


Ответы (2)


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

person Edwin Vermeer    schedule 11.10.2014
comment
Этот проект не работает для меня, и я кодирую только на Objective-C, поэтому я должен попробовать сделать это по-своему :), но все равно голосую за вашу помощь .. - person Mayo323; 13.10.2014
comment
Вы следовали инструкциям по загрузке зависимостей с помощью cocoapods? - person Edwin Vermeer; 13.10.2014
comment
Нет .. Я только что проверил ваш код. Эта программа будет чем-то вроде мессенджера? - person Mayo323; 14.10.2014
comment
да, мессенджер будет демо для CloudKit dao. Как я уже сказал, это работа. Еще многое предстоит сделать. - person Edwin Vermeer; 14.10.2014

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

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);
person user3610605    schedule 08.11.2014