Я новичок в CloudKit и только сейчас анализирую CloudKitAtlas из библиотеки разработчика. Я создаю приложение, в котором хочу "поделиться" данными с другим пользователем того же приложения.
У меня CKContainer находится в частной базе данных, куда пользователь помещает все свои созданные словари. Теперь я хочу дать ему возможность поделиться частью своих данных с другим пользователем (создать общедоступный containerWithIdentifier). Я знаю, что можно проверить каждый адрес электронной почты из адресной книги и получить результат, если установлено это приложение. Таким образом, пользователь может выбрать, кто сможет видеть его данные.
Вопрос в том, как сказать другому пользовательскому приложению "посмотреть на этот CKContainer в моих общих данных" :)
Кто-нибудь уже делает что-то подобное?
Ответ 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);