- [CBPeripheral isConnected]:发送到实例

时间:2016-01-13 18:57:41

标签: ios bluetooth ios9 state cbperipheral

我正在开发一款通过蓝牙连接到腕带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属性。我也连接到腕带制造商,显然他们也没有使用它。

此时,我有点无望。我想知道是否有人遇到过这种情况。

提前致谢。

2 个答案:

答案 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