Как установить контейнер контактов по умолчанию для моего приложения iOS на контейнер контактов, сохраненный в iCloud?

Я пишу приложение для iOS с использованием Swift и Xcode 13.1. Я использую платформу контактов и прочитал, что в каждом приложении есть контейнер контактов по умолчанию, а контейнер по умолчанию в приложении может отличаться от контейнера по умолчанию в другом приложении, а контейнера по умолчанию для всего устройства нет.

Что определяет контейнер по умолчанию для приложения, созданного проектом Xcode? Я не устанавливал контейнер по умолчанию для своего приложения, и каким-то образом контейнер контактов для учетной записи Google стал контейнером контактов по умолчанию для моего приложения. Как использовать код для установки контейнера контактов по умолчанию для моего приложения?

Как узнать, какой контейнер по умолчанию является контейнером приложения Apple «Контакты», поставляемым с iOS? Я хотел бы установить контейнер контактов моего приложения по умолчанию в тот же контейнер по умолчанию, что и приложение «Контакты Apple», если это контейнер контактов, сохраненный в iCloud. В противном случае я хотел бы установить контейнер контактов моего приложения по умолчанию в контейнер контактов, который сохраняется в iCloud. Я предполагаю, что в iCloud сохраняется только один контейнер контактов.

1 ответ

Пользователь может указать контейнер контактов по умолчанию для новых контактов в настройках. Ваше приложение может получить доступ к идентификатору этого контейнера, используяdefaultContainerIdentifier.

Если вы хотите, чтобы пользователь мог указать другой контейнер для новых контактов, созданных вашим приложением, вам нужно написать код самостоятельно.

Вам необходимо предоставить представление, отображающее список контейнеров контактов, полученных в результате вызоваcontainers(matching:nil). Как только пользователь выберет контейнер, сохраните его идентификатор в настройках вашего приложения и используйте этот идентификатор контейнера при создании новых контактов.

Все, что вы можете знать о контейнере, это его identifier, это nameи это type(обмен, CalDAV или местный).

Другие вопросы по тегам