2015-08-26 3 views
3

Поддерживаются ли несколько экземпляров CBCentralManager? Могу ли я создать два экземпляра CBCentralManager в двух разных диспетчерах просмотра в моем приложении, и оба подключаются к одному и тому же периферийному устройству.Поддерживаются ли множественные экземпляры объектов CBCentralManager?

В качестве вопроса (Multiple CBCentralManager instances?) упоминаются некоторые списки рассылки Apple, в которых указано, что он не поддерживается, однако я также нашел «Примечание: поскольку приложения могут иметь несколько экземпляров объектов CBCentralManager и CBPeripheralManager, убедитесь, что каждый идентификатор восстановления уникален , так что система может правильно отличить один центральный (или периферийный) управляющий объект от другого "в Руководстве по программированию CoreBluetooth.

Я не знаю, в каком случае я должен создать несколько объектов объектов CBCentralManager. Надеюсь, ты поможешь мне, спасибо.

ответ

0

Официальный ответ:

Несколько экземпляров CBCentralManager поддерживаются. Но вы не можете подключить более одного экземпляра к одному и тому же периферийному устройству.

Вы можете представить CBCentralManager как контроллер вида. Вы можете иметь один вид контроллера управления несколько представлений, но вы не можете иметь один вид управляется несколькими контроллерами отображения (или если вы сделали, это не имело бы смысла)

+1

У вас есть ссылка на официальный ответ? – Eric

+0

@ Eric Я попросил поддержку разработчика, и они ответили мне по электронной почте – SomnusLee

+0

Это не похоже на правду, тем более что iOS может даже не знать, является ли это одним и тем же периферийным (UUID могут меняться между рекламными пакетами). –

0

По: https://forums.developer.apple.com/thread/20810 Вы можете иметь несколько экземпляров CBCentralManager в одном приложении.

Можно ли использовать экземпляры CBPeripheral между экземплярами CBCentralManager?

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