Ты думаешь об этом задом наперед.Вы не получаете список служб, а затем решаете, следует ли подключиться.Вы сами решаете, какие услуги вам нужны, и сканируете их.
Когда вы звоните scanForPeripherals(withServices:options:)
, вы почти всегда должны передавать список услуг, которые вы поддерживаете.Если вы передаете nil
, то вы почти наверняка вызываете его неправильно, если вы не создаете сканер BLE общего назначения.
То же самое верно для discoverServices(_:)
.Вы очень редко проходите туда nil
.Вы передаете список услуг, с которыми вы знаете, как иметь дело.Свойство .services
доступно для удобства, когда вы знаете, что уже загрузили службы, но редко бывает так полезно.Если вы позвоните discoverServices(_:)
, когда в этом нет необходимости, система немедленно отправит вам кэшированные данные.