我目前正在制作一款使用蓝牙进行广告宣传并同时扫描该广告的应用。这样,如果我在两个不同的手机上安装应用程序,那么一个可能是外围设备而另一个可能是中心。我需要将这些功能分开吗?基本上我有一个外围管理器在viewDidLoad和协议和所有调用后打开所以基本上正确,当我打开它开始广告。在另一个实现文件中,我有相同的东西,但对于中央管理器。所以中央管理器也在viewDidLoad(但是不同的文件)中启动,然后调用所有协议然后开始扫描。
我的问题是:
是否可以同时实现这些角色,但是在不同的实现文件中,或者我是否需要为两者分别设置状态?
我不知道这是否相关,但我的所有代码都检查了,但是,当我尝试运行它时它没有超过链接阶段,它给了我这个错误:
Apple Mach-O链接器错误
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
答案 0 :(得分:0)
完全可以在CBCentralManager
上进行扫描,并在同一时间在CBPeripheralManager
上投放广告。您的问题是您最有可能未添加CoreBluetooth.framework
(通常是链接器错误的来源)。另外,我建议在他们自己的单例文件中实现CBCentralManager
和CBPeripheralManager
(不是必需的,但它更干净)。