【发布时间】:2015-05-18 17:26:08
【问题描述】:
是否支持多个CBCentralManager 实例?如果是,它们是在哪个 iOS 版本中开始支持的?
我在 Apple 邮件列表中发现 multiple emails 表明它们不是。但是,这不是通过例外或理论上的+sharedCentralManager 来强制执行的。一个说文档说它们不受支持。不过the documentation中不再提及,目前头文件注释(iOS 8.3 SDK)为:
/*!
* @class CBCentralManager
*
* @discussion Entry point to the central role. Commands should only be issued when its state is <code>CBCentralManagerStatePoweredOn</code>.
*
*/
我不希望 CBPeripheral 实例可以在 CBCentralManager 实例之间移植(这不是这个问题的意义所在),我只希望蓝牙堆栈中有多个“窗口”(没有任何不规则行为)。
【问题讨论】:
-
最好有一个 CBCentralManager 实例并围绕它设计您的应用程序。为什么需要多个?
-
我看不出这有多“好”——尤其是因为这本质上是在强制使用单例,我通常认为这是糟糕的设计。要么有效,要么无效。如果它不起作用,那很公平,但这似乎完全没有记录(而且它以前有记录,因此是问题)。
标签: ios bluetooth core-bluetooth