2017-07-17 2 views
0

Ich stehe vor dem Absturz Problem auf iOS CoreBluetooth [CBPeripheralManager AddService:].iOS-Absturz Assertion Failure auf CBPeripheralManager AddService:

Scheint aufgrund von Assertion Fehler in addService Methode aufgetreten. Versucht so viele Möglichkeiten, kann immer noch nicht das Problem herausfinden.

Nach meinem Verständnis ist dies nicht null Zeiger Ausnahme, wie ich schon getestet Passing Nil-Wert als AddService-Parameter, die unterschiedliche Ausgabe ergeben.

Ich habe alle Delegierten von CBPeripheralManager einschließlich CBCentral Delegaten implementiert.

Im Allgemeinen funktioniert es gut. Normalerweise kann ich dieses Problem nicht mit Absicht reproduzieren. Aber es kommt plötzlich vor.

Bitte helfen Sie . Crash-Log:

0 CoreFoundation     0x18b3cafe0 __exceptionPreprocess + 124 
1 libobjc.A.dylib    0x189e2c538 objc_exception_throw + 56 
2 CoreFoundation     0x18b3caeb4 +[NSException raise:format:arguments:] + 104 
3 Foundation      0x18be62720 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112 
4 CoreBluetooth     0x1922ab420 -[CBPeripheralManager addService:] + 820 
5 MyApp      0x10110e1f4 -[MyPeripheralManager addServiceIntoPeripheralManager] (MyPeripheralManager.m:202) 

Codestück:

-(void)addService{ 
if (!isServiceAdded) { 
    CLLog("Add Service timer started"); 
    [backgroundTaskManager manageBackgroundRunningTask]; 
    /* 
    AddService will be called after 5 seconds 
    when application launching finished or iOS BT on 
    */ 
    [self performSelector:@selector(addServiceIntoPeripheralManager) withObject:self afterDelay:SERVICE_ADDING_DELAY]; // 5 secs 

} else { 
    CLDbg("Service already added"); 
} 
} 
- (void)addServiceIntoPeripheralManager{ 
CLLog("Add Service timer expired"); 
CLDbg("Service Adding: %@", [UUIDString]); 
[cbPeripheralManager addService:Service]; 
} 

Vielen Dank im Voraus.

+0

Aktie einige Code, den Sie –

+0

bitte versuchen Sie Ihren Code teilen – Dhiru

+0

Code-Snippet hinzugefügt, teilen Sie bitte den Grund für diese Art von Assertion fehlgeschlagen. –

Antwort

1

Sie sind nicht die Rückruf Updates Ihrer BluetoothManager

siehe this answer

und This answer

Umsetzung hoffe ich, dies wird Ihnen helfen

+0

Ich habe alle Delegierten von CBPeripheralManager einschließlich CBCentral Delegaten implementiert. Im Allgemeinen funktioniert es gut. Normalerweise kann ich dieses Problem nicht mit Absicht reproduzieren. Aber es kommt plötzlich vor. –