2016-01-13 2 views
1

Я разрабатываю приложение для iPhone, которое подключается к браслету Empatica E4 через Bluetooth. Этот браслет дает вам данные о сердечном ритме, потоотделении и т. Д.- [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

Вы используете библиотеку 3rd партии или что-то, что, возможно, еще не могла быть обновлена? Добавьте точку останова, чтобы увидеть, где она используется. – WrightsCS

+0

@WrightsCS, я только что загрузил образец проекта с сайта производителя браслета, и у меня есть эта проблема. Таким образом, нет сторонней библиотеки. Исключение выдается, когда iPhone обнаруживает браслет. –

ответ

0

У меня была та же проблема. Вам нужно добавить категорию в CBPeripheral, которая восстанавливает метод isConnected.

#import "CBPeripheral+APIFix.h" 

@implementation CBPeripheral (APIFix) 

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

@end 
1

Я сделал изменение.

[peripheral isConnected]

стал

peripheral.state == CBPeripheralStateConnected

Смежные вопросы