2016-01-13 82 views
1

我正在開發iPhone應用程序,通過藍牙連接到腕帶Empatica E4。這腕帶給你心率,汗水等數據。- [CBPeripheral isConnected]:無法識別的選擇器發送到實例

在升級到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屬性。我也連接到腕帶的製造商,顯然他們也沒有使用它。

在這一點上,我有點絕望。我想知道是否有人遇到這種情況。

在此先感謝。

+1

是否使用第三方庫或東西,可能可能尚未更新?爲此添加一個斷點以查看其使用位置。 – WrightsCS

+0

@WrightsCS,我剛剛從腕帶製造商網站下載了示例項目,我遇到了這個問題。因此,沒有第三方圖書館。一旦iPhone發現腕帶,就會拋出異常。 –

回答

0

我有同樣的問題。您需要添加一個類別到恢復isConnected方法的CBPeripheral。

#import "CBPeripheral+APIFix.h" 

@implementation CBPeripheral (APIFix) 

-(BOOL)isConnected { 
    if (self.state == CBPeripheralStateConnected) { 
     return YES; 
    } 
    return NO; 
} 

@end 
1

我做了更改。

[peripheral isConnected]

成了

peripheral.state == CBPeripheralStateConnected

相關問題