Поддержка словаря iOS Bluetooth CBPeripheralManager - PullRequest
0 голосов
/ 01 декабря 2018

В документации CBPeripheralManager метод startAdvertising получает словарь, содержащий данные, которые вы хотите рекламировать.Согласно документации, CBPeripheralManager.startAdvertising принимает только два возможных ключа в своем аргументе словаря: CBAdvertisingDataLocalNameKey и CBAdvertisingDataServiceUUIDsKey .

Однако в документации Apple для TurningУстройство iOS в iBeacon . Они предполагают, что вы можете передать словарь, возвращаемый методом CLBeaconRegion Периферийные данные .Словарь, возвращаемый этим методом, содержит 1 пару значений ключа с ключом с именем " kCBAdvDataAppleBeaconKey " и значением, являющимся идентификатором близостиUUID, major, minor и маяка.

Дампздесь отображается словарь, возвращенный методом Периферийные данные: Дамп словаря

Мой вопрос: Как метод PeripheralManager.startAdvert получает словарь с ключом " kCBAdvDataAppleBeaconKey "и все еще передает без ошибок, если единственные ключи, которые он поддерживает, являются CBAdvertisingDataLocalNameKey и CBAdvertisingDataServiceUUIDsKey ?

1 Ответ

0 голосов
/ 01 декабря 2018

Самое простое и наиболее вероятное объяснение состоит в том, что документация о CBPeripheralManager.startAdvertising, принимающая только два ключа, является неточной.Документы, возможно, просто никогда не обновлялись после того, как была выпущена поддержка iBeacon.

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

Реальность такова, что документация очень часто не синхронизируется с новыми функциями, добавленными в API, и еще чаще встречается в документации, не говоря уже о секретном поведении, которое не поддерживается публично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...