Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Mayo323Ответов: 2

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

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

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

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

xcodeobjective-ccloudkitsharing

Ответы

Ответ 1 · рейтинг 1 · Edwin Vermeer

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

Ответ 2 · user3610605

Проверьте 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);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы