我正在开发一款通过蓝牙连接到腕带Empatica E4的iPhone应用程序。这款腕带可为您提供心率,排汗等数据。
在升级到iOS 9.2和Xcode 7之前,一切都很好。我能够从iPhone连接到腕带,我能够获得数据。但是,升级后,一旦iPhone连接到腕带,我就开始抛出以下异常:
-[CBPeripheral isConnected]: unrecognized selector sent to instance
我进行了研究,发现不推荐使用isConnected
属性,而应使用state
属性:
https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBPeripheral_Class/index.html#//apple_ref/occ/instp/CBPeripheral/isConnected
但是,我不会在代码中的任何位置使用isConnected
属性。我也连接到腕带制造商,显然他们也没有使用它。
此时,我有点无望。我想知道是否有人遇到过这种情况。
提前致谢。
答案 0 :(得分:1)
我做了改变。
[peripheral isConnected]
成了
peripheral.state == CBPeripheralStateConnected
答案 1 :(得分:0)
我遇到了同样的问题。您需要向CBPeripheral添加一个类别,以恢复isConnected方法。
#import "CBPeripheral+APIFix.h"
@implementation CBPeripheral (APIFix)
-(BOOL)isConnected {
if (self.state == CBPeripheralStateConnected) {
return YES;
}
return NO;
}
@end