#ios #swift #xcode #ios-contacts #cncontainer
#iOS #быстрый #xcode — код #ios-контакты #cncontainer
Вопрос:
Я пишу приложение для iOS, используя Swift и Xcode 13.1. Я использую Contacts Framework, и я прочитал, что у каждого приложения есть контейнер контактов по умолчанию, а контейнер по умолчанию в приложении может отличаться от контейнера по умолчанию в другом приложении, и для всего устройства не существует контейнера по умолчанию.
Что определяет, какой контейнер является контейнером по умолчанию для приложения, созданного проектом Xcode? Я не установил контейнер по умолчанию для своего приложения, и каким-то образом контейнер контактов для учетной записи Google стал контейнером контактов по умолчанию для моего приложения. Как мне использовать код для установки контейнера контактов по умолчанию для моего приложения?
Как мне узнать, какой контейнер используется по умолчанию в приложении Apple Contacts, которое поставляется с iOS? Я хотел бы установить для контейнера контактов моего приложения по умолчанию тот же контейнер по умолчанию, что и для приложения Apple Contacts, если это контейнер контактов, сохраненный в iCloud. Если нет, я хотел бы установить контейнер контактов моего приложения по умолчанию в контейнер контактов, который сохраняется в iCloud. Я предполагаю, что в iCloud сохраняется только один контейнер контактов.
Ответ №1:
Пользователь может указать контейнер контактов по умолчанию для новых контактов в настройках. Ваше приложение может получить доступ к идентификатору этого контейнера с помощью defaultContainerIdentifier
.
Если вы хотите разрешить пользователю указывать другой контейнер для новых контактов, созданных вашим приложением, вам нужно закодировать его самостоятельно.
Необходимо предоставить представление, в котором отображается список контейнеров контактов, полученных в результате вызова containers(matching:nil)
. Как только пользователь выберет контейнер, сохраните его идентификатор в настройках приложений и используйте этот идентификатор контейнера при создании новых контактов.
Все, что вы можете знать о контейнере, это его identifier
, его name
и его type
(Exchange, CalDAV или локальный).
Комментарии:
1. Я не могу найти в настройках своего приложения, которое позволяет пользователю выбирать контейнер по умолчанию. Где находится настройка в настройках? Я думал, что каждое приложение может иметь свой собственный контейнер по умолчанию.
2. ОК. Я нашел его. Спасибо!