2013-09-18 5 views
6

Я просто повышен до Xcode V5.0 (5A1413) успеха сборки, но запустить программу против эмулятора вызывает ошибку в определении свойства:CBCentralManager * менеджер EXC_BAD_ACCESS с iOS7.0

@property (неатомический, сильного) CBCentralManager * manager; -> Тема 1: EXC_BAD_ACCESS (код = 2, адрес = 0x8)

ответ

2

Я столкнулся с той же проблемой, и, наконец, прибегли к этому:

UIDevice *currentDevice = [UIDevice currentDevice]; 
if ([currentDevice.model rangeOfString:@"Simulator"].location == NSNotFound) { 
    self.centralMgr = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 
} 

на тренажере, если я не защититесь от создания CBCentralManager, я вижу centralManagerDidUpdateState: вызывается с CBCentralManager *, который соответствует моему сильному свойству. На него можно ссылаться, а состояние - CBCentralManagerStateUnsupported. Это имеет смысл, но если я нахожусь в моем сильном управляющем свойстве в этот момент (так как я не собираюсь делать BLE на симуляторе, который его не поддерживает), я получаю EXC_BAD_ACCESS. Поэтому, в отсутствие лучшего ответа, я предлагаю вам просто защититься от стрельбы по менеджеру вообще, как в моем коде выше.

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