«получить рекламные данные» можно интерпретировать несколькими способами. Рекламные данные - это тип информации, являющейся частью процесса рекламы BLE, который вы получаете как часть процесса сканирования CentralManager и не отображаются в функции, показанной выше. Я предполагаю, что рекламные данные здесь используются в общем для обозначения характерных данных, которые можно прочитать или прослушать после подключения вашего приложения к периферийному устройству.
Короче говоря, каждый раз, когда ваш код подключается к устройству через CentralManager connect (_: options :), iOS создает соединение для этого конкретного периферийного устройства. Таким образом, ваш код должен содержать ссылку на периферийное устройство, и вы должны назначить делегата для каждого периферийного устройства, выполнить обнаружение службы / характеристики для каждого и т. Д. Код может делать это с одним классом, который ведет себя как делегат для каждого из них. подключенное периферийное устройство. Приведенный выше фрагмент подразумевает это, но он не показывает наверняка.
Нам нужно было бы увидеть код, который используется для обработки службы и обнаружения признаков, а также для подписки на уведомления или для генерацииПрочитайте запрос, чтобы увидеть наверняка, что происходит. Я подозреваю, что там есть проблема. Скорее всего, запрос на чтение выполняется только по одной характеристике. Я полагаю, что помимо поддержки периферийных устройств необходимо придерживаться характеристики CBC для каждого устройства. Например, если вы храните один CBCharacteristic для всех периферийных устройств, это может вызвать эту проблему.
Немного больше подробностей будет полезно, но, вероятно, проблема заключается в том, как выполняется чтение, и в управлении CBPeripheral. и CBC характерные ссылки.