Как получить текущую информацию о пользователе из iCloud с помощью Cloudkit, swift

Мой вопрос заключается в том, как я могу получить текущую информацию о пользователе, вошедшем в систему, из iCloud с помощью cloudkit. я хочу добавить больше полей в этот раздел пользовательских значений по умолчанию и получить эти данные, когда захочу. Я попытался создать новую схему для сохранения пользовательских данных.


person Dr.Ax    schedule 08.05.2016    source источник
comment
Какую информацию вы ищете? CloudKit позволяет получить только имя пользователя.   -  person rmaddy    schedule 08.05.2016
comment
@rmaddy Я хочу сохранить имя пользователя, адрес электронной почты и контактную информацию в пользовательском разделе iCloud. Есть ли код для получения идентификатора пользовательского устройства и имени пользователя из облачного набора?   -  person Dr.Ax    schedule 09.05.2016
comment
Посмотрите документы для CKContainer.   -  person rmaddy    schedule 09.05.2016


Ответы (1)


Можно добавить дополнительные поля в тип записи пользователя в CloudKit, но это не рекомендуется. Пользовательский тип записи — это специальный тип записи с множеством ограничений. Лучше создать новый тип записи, куда будут сохраняться дополнительные пользовательские настройки. Затем вы можете установить CKReference для фактического идентификатора записи пользователя.

Для получения идентификатора записи активного пользователя используйте функцию CKcontainer fetchUserRecordIDWithCompletionHandler. Если вы хотите получить имя и фамилию (больше информации получить нельзя), то используйте функцию discoverUserInfoWithUserRecordID

person Edwin Vermeer    schedule 10.05.2016
comment
Спасибо за ответ. я попытаюсь сделать новую запись и сохранить в ней информацию о пользователе. Меня беспокоит то, что в соответствии с рекомендациями Apple мы не должны видеть или обнаруживать пароль пользователя, поэтому при создании записи пользователя имя пользователя и пароль должны быть сохранены в этой записи пользователя. Если я это сделаю, я смогу увидеть пароль пользователя. Заставит ли это Apple отказаться от моего приложения? - person Dr.Ax; 10.05.2016
comment
Вам не нужен логин пользователя. Когда вы используете CloudKit, вы будете точно знать, что его учетная запись iCloud верна и вы вошли в систему. Вы можете запросить идентификатор пользователя и имя. Если это не удастся, вы узнаете, что пользователь не вошел в систему, и вы можете попросить пользователя войти в iCloud в приложении настроек. - person Edwin Vermeer; 10.05.2016
comment
Просто обратите внимание, что discoverUserInfoWithUserRecordID устарел в iOS 10. Предпочтительными методами теперь являются методы discoverUserIdentity(with....). - person Anthony C; 31.01.2017