6

Xcode V5.0 (5A1413) にアップグレードしたところ、ビルドは成功しましたが、エミュレーターに対してプログラムを実行すると、プロパティ定義でエラーが発生します。

@property (nonatomic, strong) CBCentralManager *manager; --> スレッド 1:EXC_BAD_ACCESS (コード = 2、アドレス = 0x8)

4

1 に答える 1

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 をサポートしていないシミュレーターでは BLE を実行しないため)、EXC_BAD_ACCESS が返されます。したがって、より良い答えがない場合は、上記のコードのように、マネージャーを起動しないように単純にガードすることをお勧めします。

于 2013-12-16T06:44:29.803 に答える