我在iOS CoreBluetooth上遇到崩溃问题
[CBPeripheralManager AddService:]
。
似乎是由于addService
方法中的断言失败而发生的。尝试了这么多方法,仍然无法弄清楚问题。
根据我的理解,这不是空指针异常,因为我已经测试过将nil值作为AddService参数传递,产生不同的问题。
我已经实现了CBPeripheralManager的所有代表,包括CBCentral代表。
一般来说它工作正常。通常情况下我无法重现这个问题。但它突然发生。
请帮忙 。 崩溃日志:
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)
Code Snipet:
-(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];
}
提前致谢。