在iPhone上启用BLE。默认情况下不工作

在iPhone上启用BLE。默认情况下不工作,iphone,ios,objective-c,core-bluetooth,Iphone,Ios,Objective C,Core Bluetooth,我对iOS开发相当陌生。一个月前我开始构建一个BLE应用程序,它在前台和后台都运行良好,BLE连接本身并没有问题。 我上周恢复了我的手机。重新启动后,我尝试在iPhone上运行我的应用程序。它开始崩溃。这条线上的密码被破解了 [self.manager retrievePeripherals:[NSArray arrayWithObject:(id)peripheral.UUID]]; 发出信号。我安装了endomondo并尝试将我的传感器与之配对。它要求我启用ble,我在对话框上点击yes,

我对iOS开发相当陌生。一个月前我开始构建一个BLE应用程序,它在前台和后台都运行良好,BLE连接本身并没有问题。 我上周恢复了我的手机。重新启动后,我尝试在iPhone上运行我的应用程序。它开始崩溃。这条线上的密码被破解了

[self.manager retrievePeripherals:[NSArray arrayWithObject:(id)peripheral.UUID]];
发出信号。我安装了endomondo并尝试将我的传感器与之配对。它要求我启用ble,我在对话框上点击yes,皮带配对。之后,我检查了我的应用程序,它也开始正常工作。 我想是因为在制作我自己的应用程序之前,我已经安装了endomondo,所以我的应用程序已经可以正常工作了。我真的无法理解在没有任何其他应用程序为我执行此操作的情况下,需要执行哪些操作才能启用我的应用程序进行ble操作。
帮我修一下。我们是否需要设置其他设置来启用ble,而不仅仅是通过设置启用蓝牙?

如果我没记错的话,iOS 6.x的某些版本会在外设的UUID属性周围返回扭曲的结果。有时,当它应该是一个合法的值时,它会返回为零。最后,我在我的一个应用程序中使用了类似这样的解决方案:

if (aPeripheral.UUID != nil)
{
    [centralManager retrievePeripherals:[NSArray arrayWithObject:(id)aPeripheral.UUID]];
}
else
{
    [self centralManager:centralManager didRetrievePeripherals:[NSArray arrayWithObject:aPeripheral]];
}

这将外围设备直接传递到委托方法中,避免了检索步骤,并且当我这样做时,应用程序似乎能够可靠地工作。我相信在升级到较新的iOS 6.0点版后,不再需要它。

peripherl.UUID中有什么?嗯,一开始里面有什么?retrievePeripherals用于请求中心根据其UUID检索已知外围设备的列表。您的peripal.UUID是否为null?是,仅当它给出错误时才为null。直接调用[manager ConnectPeripal]可以解决这个问题吗?一旦连接,我每次都使用RetrievePeripal。只有在您知道一个的情况下,您才需要检索外围设备。。。检查CoreBooth温度传感器,来自苹果的样品。你可以检查加载设备的方法,
loadDevices
…我也想过这样做,但我不确定这是否是最佳方法。但伊玛现在只能用这个了。谢谢